關於redis使用

來源:互聯網
上載者:User

標籤:

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使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.