Redis是一個key-value存儲系統。和Memcached相似,它支持存儲的value類型相對更多,包括string(字符串)、 list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操做,並且這些操做都是 原子性的。在此基礎上,redis支持各類不一樣方式的排序。與memcached同樣,爲了保證效率,數據都是緩存在內存中。區別的是redis會週期性 的把更新的數據寫入磁盤或者把修改操做寫入追加的記錄文件,而且在此基礎上實現了master-slave。java
前言git
由於是初次使用,因此是在windows下進行安裝和使用,參考了幾篇博客,下面整理一下:github
安裝Redisredis
官方網站:http://redis.io/windows
官方下載:http://redis.io/download 能夠根據須要下載不一樣版本緩存
windows版:https://github.com/mythz/redis-windowsapp
github的資源能夠ZIP直接下載的(這個是給不知道的同窗友情提示下)。memcached
下載完成後 能夠右鍵解壓到 某個硬盤下 好比D:\Redis\redis-2.6。測試
在D:\Redis\redis-2.6\bin\release下 有兩個zip包 一個32位一個64位。網站
根據本身windows的位數 解壓到D:\Redis\redis-2.6 根目錄下。
2.啓動Redis
進入redis目錄後 開啓服務 (注意加上redis.conf)
這個窗口要保持開啓 關閉時redis服務會自動關閉
redis會自動保存數據到硬盤 因此圖中是我第二次開啓時 多了一個 DB loaded from disk
3.測試使用
另外開啓一個命令行窗口 進入redis目錄下 (注意修改本身的ip)
4.Java開發包Jedis
Jedis :http://www.oschina.net/p/jedis (Redis的官方首選Java開發包)
package com.zlhl.dzswj.login.service; import com.zlhl.common.ConfigProperty; import redis.clients.jedis.Jedis; /** * redis鏈接服務類 */ public class RedisService { ConfigProperty cp = new ConfigProperty(); //String rdsIp = cp.get("Redis_IP", "com.zlhl.config.syspara"); //System.out.println("rdsIp=="+rdsIp); private int port = 6379; private String urlIp = cp.get("Redis_IP", "com.zlhl.config.syspara");//"192.168.2.3"; private Jedis jedis; public RedisService(){ this.jedis = new Jedis(this.urlIp,this.port); } /** * redis存值 * @param key * @param value */ public void setValue(String key,String value){ this.jedis.set(key, value); } /** * redis存值(原有值追加) * @param key * @param value */ public void append(String key,String value){ this.jedis.append(key, value); } /** * redis取值 * @param key */ public String getValue(String key){ return this.jedis.get(key); } /** * redis刪除 * @param key */ public void deleteByKey(String key){ this.jedis.del(key); } /** * redis設置key的存活時間(有效時間),時間爲秒,指向值 * @param key */ public void setex(String key,String value){ this.jedis.setex(key, 1800, value); } /** * redis設置key的存活時間(有效時間),時間爲秒,指向結果集 * @param key */ public void expire(String key){ this.jedis.expire(key, 1800); } /** * list 集合存儲 * @param listKey * @param key * @param value */ public void hsetList(String listKey,String key,String value){ this.jedis.hset(listKey, key, value); } /** * list 獲取指定的值 * @param listKey * @param key */ public String hgetList(String listKey,String key){ return this.jedis.hget(listKey, key); } /** * list 刪除指定的值 * @param listKey * @param key */ public void hdelList(String listKey,String key){ this.jedis.hdel(listKey, key); } /** * 判斷某個key是否存在 * @param key * @return */ public boolean exists(String key){ return this.jedis.exists(key); } /** * 判斷list集合中的某個key是否存在 * @param listKey * @param key * @return */ public boolean hexists(String listKey,String key){ return this.jedis.hexists(listKey, key); } /** * 根據sid判斷是不是有效時間 * @param key * @return */ public boolean ttl(String key){ boolean res = false; if(this.jedis.ttl(key) > 0){ res = true; }else{ res = false; } return res; } /** * 關掉redis鏈接 */ public void CloseRedisCon(){ this.jedis.close(); } public static void main(String[] args) { // RedisService jedis = new RedisService(); ConfigProperty cp = new ConfigProperty(); String rdsIp = cp.get("Redis_IP", "com.zlhl.config.syspara"); //System.out.println("rdsIp=="+rdsIp); //list Jedis jedis = new Jedis(rdsIp,6379); // jedis.rpush("lists", "s1"); // jedis.rpush("lists", "s2"); // jedis.rpush("lists", "s3"); // List<String> values = jedis.lrange("lists", 0, -1); // //System.out.println("values==="+values); // // jedis.lpush("lists", "s4"); // jedis.lpush("lists", "s5"); // jedis.lpush("lists", "s6"); // // List<String> values1 = jedis.lrange("lists", 0, -1); // //System.out.println("values1==="+values1); //map // jedis.hset("hash", "a1", "aaaa"); // jedis.hset("hash", "d1", "dddd"); // jedis.hset("hash", "c1", "cccc"); // // jedis.hset("hash", "b1", "bbbb"); // jedis.hset("hash", "n1", "nnnn"); // jedis.hset("hash", "m1", "mmmm"); // // jedis.hset("hash", "x1", "xxxx"); // jedis.hset("hash", "y1", "yyyy"); //System.out.println(jedis.hexists("hash", "c1")); // //System.out.println("@@@@@"+jedis.hkeys("hash")); // //System.out.println("#####"+jedis.hkeys("hash")); // //System.out.println("#####"+jedis.hvals("hash")); // //System.out.println("%%%%"+jedis.hget("hash", "x1")); // //System.out.println("$$$$"+jedis.hmget("hash", "y1","x1")); // // //System.out.println("%%%%"+jedis.hget("hash", "n1")); //System.out.println("$$$$"+jedis.hmget("hash", "n1","m1")); jedis.close(); //System.out.println("$$$$"+jedis.hmget("hash", "n1","m1")); // jedis.setex("hash", 100, ""); // // //System.out.println(jedis.ttl("hash")); // //System.out.println("%%%%"+jedis.hget("hash", "x1")); // //System.out.println(jedis.exists("ps5fJ3BPT2qNp2KS1mJnJWGpQYfj7hLQ63vVP0H3bh2QhCwzHFD3!961751237!1425473935718")); // RedisService redis = new RedisService(); // redis.deleteByKey("ps5fJ3BPT2qNp2KS1mJnJWGpQYfj7hLQ63vVP0H3bh2QhCwzHFD3!961751237!1425473935718"); // redis.hsetList("ps5fJ3BPT2qNp2KS1mJnJWGpQYfj7hLQ63vVP0H3bh2QhCwzHFD3!961751237!1425473935718", "id_nsrsbh", "11010112589562"); // redis.hsetList("ps5fJ3BPT2qNp2KS1mJnJWGpQYfj7hLQ63vVP0H3bh2QhCwzHFD3!961751237!1425473935718", "1111", "1111"); // redis.hsetList("ps5fJ3BPT2qNp2KS1mJnJWGpQYfj7hLQ63vVP0H3bh2QhCwzHFD3!961751237!1425473935718", "2222", "2222"); // redis.hsetList("ps5fJ3BPT2qNp2KS1mJnJWGpQYfj7hLQ63vVP0H3bh2QhCwzHFD3!961751237!1425473935718", "3333", "3333"); // redis.hsetList("ps5fJ3BPT2qNp2KS1mJnJWGpQYfj7hLQ63vVP0H3bh2QhCwzHFD3!961751237!1425473935718", "4444", "4444"); // //System.out.println(redis.exists("ps5fJ3BPT2qNp2KS1mJnJWGpQYfj7hLQ63vVP0H3bh2QhCwzHFD3!961751237!1425473935718")); // // //System.out.println("%%%%"+redis.hgetList("ps5fJ3BPT2qNp2KS1mJnJWGpQYfj7hLQ63vVP0H3bh2QhCwzHFD3!961751237!1425473935718","id_nsrsbh")); // //System.out.println("%%%%"+redis.hgetList("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718", "ISYBNSR")); // //System.out.println("%%%%"+redis.hgetList("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718", "HZDJRQ")); // //System.out.println("%%%%"+redis.hgetList("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718", "HZDJJZRQ")); // //System.out.println("%%%%"+redis.hgetList("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718", "NSR_ZYFPLB")); // //System.out.println("%%%%"+redis.hgetList("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718", "id_nsrsbh")); // //System.out.println("%%%%"+redis.hgetList("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718", "CFCA")); // //System.out.println("%%%%"+redis.hgetList("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718", "ORG_CODE")); // //System.out.println("%%%%"+redis.hgetList("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718", "ORG_NAME")); // //System.out.println("%%%%"+redis.hgetList("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718", "SSFJ")); // //System.out.println("%%%%"+redis.hgetList("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718", "logintype")); // //System.out.println("%%%%"+redis.hgetList("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718", "username")); // //System.out.println("%%%%"+redis.hgetList("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718", "cdbtype")); // //System.out.println("%%%%"+redis.hgetList("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718", "hdzsbz")); // //System.out.println("%%%%"+redis.hgetList("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718", "nsrdzdah")); // //System.out.println(redis.ttl("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718")); // //System.out.println(jedis.ttl("ML1BJ6yQG3cFWbf79dZwKLlwf9fYSZXdrShvryPlJ1RJtSzp7mp5!-1805746125!1425699472718")); } }