Redis的几种数据类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis的几种数据类型相关的知识,希望对你有一定的参考价值。
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"); } }
以上是关于Redis的几种数据类型的主要内容,如果未能解决你的问题,请参考以下文章