標籤:
1.window下使用
:http://pan.baidu.com/s/1gdCoKyn
然後運行redis-server.exe
啟動好服務如下,
2.開啟cmd視窗,cd到目錄C:\Users\Administrator\Desktop\redis-2.4.5-win32-win64\32bit
執行:redis-cli.exe(用戶端)
3.redis命令-資料存放區介紹
http://redis.io/topics/data-types-intro
官網的例子最好照著做一遍,能快速學會redis,除了最後Bitmap、lexicograpical這些比較難懂,而且也不見得常用到,而外基本都是比較通俗易懂的
4.Java訪問redis-jedius
jedis-2.7.2.jar:http://pan.baidu.com/s/1o6mXYIm
給出一個jedius-api:http://tool.oschina.net/uploads/apidocs/
再給一個Java封裝類:
import java.util.ArrayList;import java.util.List;import java.util.Set;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;public class RedisTool {private static String redisHost = "127.0.0.1";private static JedisPool pool = new JedisPool(redisHost);// get命令,資料庫預設選擇序號為0public static Object get(String key) {Jedis jedis = null;try {jedis = pool.getResource();byte[] data = jedis.get(key.getBytes());if (data == null || data.length <= 0) {return null;}return SerializeUtil.unserialize(data);} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {close(jedis);}}// get命令,第二個參數為選擇資料庫public static Object get(String key, int dbIndex) {Jedis jedis = null;try {jedis = pool.getResource();jedis.select(dbIndex);byte[] data = jedis.get(key.getBytes());if (data == null || data.length <= 0) {return null;}return SerializeUtil.unserialize(data);} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {close(jedis);}}// set命令,預設選擇序號為0public static void set(String key, Object value) {Jedis jedis = null;try {jedis = pool.getResource();jedis.set(key.getBytes(), SerializeUtil.serialize(value));} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {close(jedis);}}// set命令,第二個參數為選擇資料庫public static void set(String key, Object value, int dbIndex) {Jedis jedis = null;try {jedis = pool.getResource();jedis.select(dbIndex);jedis.set(key.getBytes(), SerializeUtil.serialize(value));} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {close(jedis);}}// hset命令,就是普通的Java-Map對象形式,key標識不同的Map對象,field為指定Map對象的索引值public static void hset(String key, String field, Object value) {Jedis jedis = null;try {jedis = pool.getResource();jedis.hset(key.getBytes(), field.getBytes(), SerializeUtil.serialize(value));} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {close(jedis);}}// hget,就是擷取指定key值的Map對象的field欄位值public static Object hget(String key, String field) {Jedis jedis = null;try {jedis = pool.getResource();byte[] data = jedis.hget(key.getBytes(), field.getBytes());if (data == null || data.length <= 0) {return null;}return SerializeUtil.unserialize(data);} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {close(jedis);}}// remove為移除一條記錄public static void remove(String key) {Jedis jedis = null;try {jedis = pool.getResource();jedis.del(key.getBytes());} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {close(jedis);}}// redis實現的自動+1序列擷取public static long getAutoId(String key) {Jedis jedis = null;long id = 1;try {jedis = pool.getResource();id = jedis.incr(key.getBytes());} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {close(jedis);}return id;}// list-push,key標識某list對象,而且是left-pushpublic static void lpush(String key, Object value) {Jedis jedis = null;try {jedis = pool.getResource();jedis.lpush(key.getBytes(), SerializeUtil.serialize(value));} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {close(jedis);}}// list-push,key標識某list對象,而且是right-pushpublic static void rpush(String key, Object value) {Jedis jedis = null;try {jedis = pool.getResource();jedis.rpush(key.getBytes(), SerializeUtil.serialize(value));} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {close(jedis);}}// 擷取指定key值的list對象的所有元素public static List<Object> lrange(String key) {Jedis jedis = null;List<Object> result = null;try {jedis = pool.getResource();List<byte[]> list = jedis.lrange(key.getBytes(), 0, -1);result = new ArrayList<Object>(list.size());for (byte[] o : list) {result.add(SerializeUtil.unserialize(o));}} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {close(jedis);}return result;}// left-pop一個指定key值的list對象public static Object lpop(String key) {Jedis jedis = null;Object object = null;try {jedis = pool.getResource();byte[] bs = jedis.lpop(key.getBytes());object = SerializeUtil.unserialize(bs);} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {close(jedis);}return object;}// right-pop一個指定key值的list對象public static Object rpop(String key) {Jedis jedis = null;Object object = null;try {jedis = pool.getResource();byte[] bs = jedis.rpop(key.getBytes());object = SerializeUtil.unserialize(bs);} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {close(jedis);}return object;}// list-index,尋找指定key值的list對象的第index號元素public static Object lindex(String key, int index) {Jedis jedis = null;Object object = null;try {jedis = pool.getResource();byte[] bs = jedis.lindex(key.getBytes(), index);object = SerializeUtil.unserialize(bs);} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {close(jedis);}return object;}// 關閉jedisprivate static void close(Jedis jedis) {if (jedis != null) {jedis.close();}}// list-length,擷取指定key值的list對象的元素個數public static long llen(String key) {Jedis jedis = null;long object;try {jedis = pool.getResource();object = jedis.llen(key.getBytes());} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {if (jedis != null) {jedis.close();}}return object;}// 擷取當前資料庫(預設序號為0)的所有keys,相當於“keys *”命令public static List<String> keys() {Jedis jedis = null;List<String> list = null;try {jedis = pool.getResource();Set<byte[]> set = jedis.keys("*".getBytes());list = new ArrayList<String>(set.size());for (byte[] bs : set) {list.add(new String(bs, "UTF8"));}} catch (Exception e) {throw new RuntimeException("Redis出現錯誤!", e);} finally {if (jedis != null) {jedis.close();}}return list;}}
5.linux下安裝redis
安裝包為redis-3.0.4.tar.gz,給出:http://pan.baidu.com/s/1jGm0ncy
先cd到/usr/local/,然後mkdir一個檔案夾redis,之後把redis-3.0.4.tar.gz拷貝到/usr/local/redis
解壓,執行tar -cxvf redis-3.0.4.tar.gz
之後cd到redis-3.0.4,執行make命令
然後執行make install命令
完成以後redis服務自動啟動,這次我的redis服務是部署在210.10.5.189上面,本機ip為210.10.5.102
開啟cmd視窗,cd到有redis-cli.exe的那個目錄下,C:\Users\Administrator\Desktop\redis-2.4.5-win32-win64\32bit,然後執行redis-cli.exe -h 210.10.5.189 -p 6379,如下
跟windows上部署的沒什麼區別了。
6.還有幾個補充說明
6.1命令
flushdb--刪除當前資料庫中的所有Keyflushall--刪除所有資料庫中的key
6.2 linux-redis查看啟動進程:
ps -ef | grep redis
6.3 配置redis最大分配記憶體
vim redis.conf
修改maxmemory <bytes>為maxmemory <2147483648>
為防止記憶體全部被redis耗光,達到最大記憶體設定後,Redis會先嘗試清除已到期或即將到期的Key,也會從free-list裡清除一些key-value。當以上方法都沒有效果,那redis就不再支援寫入操作(如set,lpush),但不影響讀操作如get。(maxmemory配置預設是注釋掉的,沒限制,跟RAM相同)
關於redis使用