1 import org.junit.Before;
2 import org.junit.Test;
3 import redis.clients.jedis.Jedis;
4
5 import java.util.HashMap;
6 import java.util.Iterator;
7 import java.util.List;
8 import java.util.Map;
9
10 /**
11 * jedis测试
12 */
13 public class TestRedis {
14
15 private Jedis jedis;
16
17 @Before
18 public void setup() {
19 //连接redis服务器 localhost:6397
20 jedis = new Jedis("localhost", 6379);
21 jedis.auth("huang");
22 }
23
24 /**
25 * redis存储字符串
26 */
27 @Test
28 public void testString() {
29 jedis.set("name", "huang");//向key->name放入value->huang
30 System.out.println(jedis.get("name"));//执行结果huang
31
32 jedis.append("name", "yichun");//拼接
33 System.out.println(jedis.get("name"));
34
35 jedis.del("name");//删除某个键
36 System.out.println(jedis.get("name"));
37 //设置多个键值对
38 jedis.mset("name", "huang", "age", "25", "qq", "567854412");
39 jedis.incr("age");//进行加1
40 System.out.println(jedis.get("name") + "-" + jedis.get("age") + "-" + jedis.get("qq"));
41 }
42
43 /**
44 * redis操作Map
45 */
46 @Test
47 public void testMap() {
48 //添加数据
49 Map<String, String> map = new HashMap<>();
50 map.put("name", "huang");
51 map.put("age", "23");
52 map.put("qq", "122434");
53 jedis.hmset("user", map);
54 //取出user中的name,执行结果: 结果是一个泛型List
55 //第一个参数是存入redis中map对象的key,后面跟的是放入map中对象的key,后面的key的可变的
56 List<String> rsMap = jedis.hmget("user", "name", "age", "qq");
57 System.out.println(rsMap);
58
59 //删除map中的某个键值, map 存在 key fields , value
60 //其中fields是代表map中的key
61 jedis.hdel("user", "age");
62 System.out.println(jedis.hmget("user", "age"));//因为删除,所以返回Null
63 System.out.println(jedis.hlen("user"));//返回key为user的键中存放的值的个数2
64 System.out.println(jedis.exists("user"));//是否存在key为user的记录,返回true
65 System.out.println(jedis.hkeys("user"));//返回map对象中所有的key
66 System.out.println(jedis.hvals("user"));//返回map对象中的所有value
67
68 Iterator<String> iterator = jedis.hkeys("user").iterator();
69 while (iterator.hasNext()) {
70 String key = iterator.next();
71 System.out.println(key + ":" + jedis.hmget("user", key));
72 }
73 }
74
75 /**
76 * jedis操作List
77 */
78 @Test
79 public void testList() {
80 //开始前,先移除所有内容
81 jedis.del("java framework");
82 System.out.println(jedis.lrange("java framework", 0, -1));
83 //先向key java framework中存放三条数据 从头部插入
84 jedis.lpush("java framework", "spring");
85 jedis.lpush("java framework", "struts");
86 jedis.lpush("java framework", "hibernate");
87 //取出所有数据jedis.lrange是按范围取出
88 //第一个key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度-1表示取得素有的
89 List<String> list = jedis.lrange("java framework", 0, -1);
90 System.out.println(list);
91
92 //从尾部插入
93 jedis.del("java framework");
94 jedis.rpush("java framework", "spring");
95 jedis.rpush("java framework", "struts");
96 jedis.rpush("java framework", "hibernate");
97 List<String> list1 = jedis.lrange("java framework", 0, -1);
98 System.out.println(list1);
99 }
100
101 @Test
102 public void testSet() {
103 //添加
104 jedis.sadd("user","大雄");
105 jedis.sadd("user","静香");
106 jedis.sadd("user","小夫");
107 jedis.sadd("user","胖虎");
108 jedis.sadd("user","多啦A梦");
109
110 //移除noname
111 jedis.srem("user","小夫");
112 System.out.println(jedis.smembers("user"));//获取所有加入的value
113 System.out.println(jedis.sismember("user", "小夫"));//判断key为user下,小夫是否存在
114 System.out.println(jedis.srandmember("user",4));//user下个数
115 System.out.println(jedis.scard("user"));//返回集合的元素个数
116 }
117
118
119 @Test
120 public void testListSort(){
121 //jedis排序
122 //注意:此处rpush和lpush是List的操作。是一个双向链表
123 jedis.rpush("key", "4");
124 jedis.lpush("key", "3");
125 jedis.lpush("key", "6");
126 jedis.lpush("key", "2");
127 System.out.println(jedis.lrange("key", 0, -1));
128 System.out.println(jedis.sort("key"));
129 System.out.println(jedis.lrange("key", 0, -1));
130 }
131
132 }