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")); } }