1. 程式人生 > >Redis的幾種數據類型

Redis的幾種數據類型

不能 jedis sta sts 是否 之前 ember println ons

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的幾種數據類型