- package com;
- import static org.junit.Assert.fail;
- import java.util.HashMap;
- import java.util.Map;
- import org.junit.Test;
- import redis.clients.jedis.Jedis;
- import redis.clients.jedis.Pipeline;
- /**
- * REDIS的几种数据结构
- * @author lenovo
- *
- */
- public class Demo2 {
- /**
- * 字符串类型
- */
- @Test
- public void testString()
- {
- Jedis jedis = new Jedis("192.168.126.129",6379);
- Pipeline pipeline = jedis.pipelined();
- System.out.println(pipeline.set("a", "1")); //打印Response string
- System.out.println(pipeline.set("b", "2"));
- System.out.println(pipeline.set("c", "3"));
- System.out.println(pipeline.set("a", "11"));
- System.out.println(pipeline.set("c", "333")); //回覆盖之前的数据
- // List<Object> results = pipeline.syncAndReturnAll();//管道提交并返回
- pipeline.sync();//管道提交,在提交之前不能进行get查询操作
- System.out.println(jedis.get("c")); //返回具体value
- System.out.println(jedis.get("d")); //如果此key不存在则返回null
- System.out.println( jedis.del("a")); //删除成功返回1
- System.out.println( jedis.del("d"));//删除不存在的key返回0
- jedis.disconnect();
- }
- /**
- * 列表类型
- */
- @Test
- public void testList()
- {
- Jedis jedis = new Jedis("192.168.126.129",6379);
- Pipeline pipeline = jedis.pipelined();
- pipeline.rpush("mylist", "a");//将数据写入列表的右侧,lpush将数据写入列表左侧
- pipeline.rpush("mylist", "b");
- pipeline.rpush("mylist", "c");
- pipeline.rpush("mylist", "a"); //同一个value可重复出现
- pipeline.sync(); //提交
- System.out.println(jedis.lrange("mylist", 0, 1));//返回指定x到y之间的数据包含xy位置
- System.out.println(jedis.lrange("mylist", 0, -1));//返回全部数据
- System.out.println(jedis.lindex("mylist", 0));//返回指定位置的数据
- System.out.println(jedis.lindex("mylist", 110));//返回指定位置的数据,此位置不存在则返回null
- System.out.println(jedis.lpop("mylist")); //返回列表左侧的第一个数据,并在列表里删除此数据
- jedis.del("mylist"); //删除列表
- jedis.disconnect();
- }
- /**
- * 集合类型
- */
- @Test
- public void testSet()
- {
- Jedis jedis = new Jedis("192.168.126.129",6379);
- Pipeline pipeline = jedis.pipelined();
- System.out.println(pipeline.sadd("mySet", "a"));
- System.out.println( pipeline.sadd("mySet", "b"));
- System.out.println(pipeline.sadd("mySet", "c"));
- System.out.println(pipeline.sadd("mySet", "a")); //重复元素不会被添加
- pipeline.sync();
- System.out.println(jedis.smembers("mySet")); //返回的顺序与添加的顺序相反,添加abc返回cba
- System.out.println(jedis.sismember("mySet", "a"));//判断此集合是否存在a元素,存在返回true
- System.out.println(jedis.sismember("mySet", "x")); // 不存在返回false
- System.out.println(jedis.srem("mySet", "a"));//判断此集合里是否存在a,如果存在则将a移除,并返回1
- System.out.println(jedis.srem("mySet", "x"));//移除不存在的元素,返回0
- jedis.disconnect();
- }
- /**
- * 散列类型
- */
- @Test
- public void testHash()
- {
- Jedis jedis = new Jedis("192.168.126.129",6379);
- Pipeline pipeline = jedis.pipelined();
- pipeline.hset("myHash", "a", "1");
- pipeline.hset("myHash", "b", "2");
- pipeline.hset("myHash", "c", "3");
- pipeline.hset("myHash", "a", "4"); //(a,1)将被覆盖成(a,4)
- pipeline.sync();
- System.out.println(jedis.hgetAll("myHash")); //获取此散列全部key value
- System.out.println(jedis.hget("myHash", "a")); //返回此散列里具体key的value
- System.out.println(jedis.hget("myHash", "x"));//此KEY不存在则返回null
- jedis.disconnect();
- }
- /**
- * 有序集合
- * 有序集合的value必须为浮点类型
- */
- @Test
- public void voidZset()
- {
- Jedis jedis = new Jedis("192.168.126.129",6379);
- Pipeline pipeline = jedis.pipelined();
- pipeline.zadd("myZset", 1.0,"a");
- pipeline.zadd("myZset", 2.0,"b");
- pipeline.zadd("myZset", 3.0,"c");
- pipeline.zadd("myZset", 0.1,"a"); //a将被覆盖为0.1
- pipeline.zadd("myZset", 2.0,"x");
- pipeline.sync();
- System.out.println(jedis.zrange("myZset", 0, -1)); //返回下标a到b个数据,-1=返回全部。按照数值从小到大排序
- System.out.println(jedis.zrangeByScore("myZset", -10, 2.0));//返回此有序集合里分值在a到b之间的数据,包含a,b.按照从小到大排序
- jedis.disconnect();
- }
- @Test
- public void test() {
- fail("Not yet implemented");
- }
- }
来源: http://www.bubuko.com/infodetail-2294522.html