欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Jedis操作各种redis中的数据结构

程序员文章站 2022-07-12 22:29:38
...

Jedis操作各种redis中的数据结构

1.字符串类型 string的java代码如下:

package com.txw.jedis.test;

import org.junit.Test;
import redis.clients.jedis.Jedis;
/**
 * jedis的测试类
 * @author Adair
 */
@SuppressWarnings("all")       // 注解警告信息
public class JedisTest {
    /**
     * string 数据结构操作
     */
    @Test
    public void testString(){
        //获取连接
        // 如果使用空参构造,默认值 "localhost",6379端口
        Jedis jedis = new Jedis();
        //存储
        jedis.set("name","Adair");
        //获取
        String username = jedis.get("name");
        System.out.println(username);
        //可以使用setex()方法存储可以指定过期时间的 key value
        jedis.setex("activecode",20,"hehe"); //将activecode:hehe键值对存入redis,并且20秒后自动删除该键值对
        // 关闭连接
        jedis.close();
    }

运行结果如图所示:Jedis操作各种redis中的数据结构
使用get activecode 命令在Redis客户端运行如图所示:20秒以后再get activecode 命令运行就为null。Jedis操作各种redis中的数据结构
2.哈希类型hash:map格式的java代码如下:

package com.txw.jedis.test;

import org.junit.Test;
import redis.clients.jedis.Jedis;
import java.util.Map;
import java.util.Set;
/**
 * jedis的测试类
 * @author Adair
 */
@SuppressWarnings("all")       // 注解警告信息
public class JedisTest {
    /**
     * hash 数据结构操作
     */
    @Test
    public void testHash(){
        // 1. 获取连接
        Jedis jedis = new Jedis();//如果使用空参构造,默认值 "localhost",6379端口
        // 2. 操作
        // 存储hash
        jedis.hset("user","name","Adair");
        jedis.hset("user","age","24");
        jedis.hset("user","gender","female");
        // 获取hash
        String name = jedis.hget("user", "name");
        System.out.println(name);
        // 获取hash的所有map中的数据
        Map<String, String> user = jedis.hgetAll("user");
        // keyset
        Set<String> keySet = user.keySet();
        for (String key : keySet) {
            //获取value
            String value = user.get(key);
            System.out.println(key + ":" + value);
        }
        // 3.关闭连接
        jedis.close();
    }
}    

运行结果如图所示:Jedis操作各种redis中的数据结构
在Redis客户端运行结果如图所示:Jedis操作各种redis中的数据结构
3) 列表类型 list :linkedlist格式。支持重复元素
lpush / rpush
lpop / rpop
lrange start end : 范围获取
java的代码如下:

package com.txw.jedis.test;

import org.junit.Test;
import redis.clients.jedis.Jedis;
import java.util.List;
/**
 * jedis的测试类
 * @author Adair
 */
@SuppressWarnings("all")       // 注解警告信息
public class JedisTest {
    /**
     * list数据结构操作
     */
    @Test
    public void testList(){
        // 1. 获取连接
        Jedis jedis = new Jedis();//如果使用空参构造,默认值 "localhost",6379端口
        // 2. 操作
        // list 存储
        jedis.lpush("mylist","a","b","c"); //从左边存
        jedis.rpush("mylist","a","b","c"); //从右边存
        // list 范围获取
        List<String> mylist = jedis.lrange("mylist", 0, -1);
        System.out.println(mylist);
        // list 弹出
        String element1 = jedis.lpop("mylist"); //c
        System.out.println(element1);
        String element2 = jedis.rpop("mylist"); //c
        System.out.println(element2);
        // list 范围获取
        List<String> mylist2 = jedis.lrange("mylist", 0, -1);
        System.out.println(mylist2);
        // 3. 关闭连接
        jedis.close();
    }
}    

运行结果如图所示:Jedis操作各种redis中的数据结构
在Redis客户端运行结果如图所示:
Jedis操作各种redis中的数据结构
4.集合类型set:不允许重复元素
sadd
smembers:获取所有元素
java的代码如下:

package com.txw.jedis.test;

import org.junit.Test;
import redis.clients.jedis.Jedis;
import java.util.Set;
/**
 * jedis的测试类
 * @author Adair
 */
@SuppressWarnings("all")       // 注解警告信息
public class JedisTest {
    /**
     * set 数据结构操作
     */
    @Test
    public void testSet(){
        // 1.获取连接
        Jedis jedis = new Jedis(); // 如果使用空参构造,默认值 "localhost",6379端口
        // 2.操作
        // set 存储
        jedis.sadd("myset","java","php","c++");
        // set 获取
        Set<String> myset = jedis.smembers("myset");
        System.out.println(myset);
        // 3.关闭连接
        jedis.close();
    }
}    

运行结果如图所示:Jedis操作各种redis中的数据结构
在Redis客户端运行结果如图所示:
Jedis操作各种redis中的数据结构
5.有序集合类型sortedset:不允许重复元素,且元素有顺序
zadd
zrange
java的代码如下:

package com.txw.jedis.test;

import org.junit.Test;
import redis.clients.jedis.Jedis;
import java.util.Set;
/**
 * jedis的测试类
 * @author Adair
 */
@SuppressWarnings("all")       // 注解警告信息
public class JedisTest {
    /**
     * sortedset 数据结构操作
     */
    @Test
    public void testSortedset(){
        // 1.获取连接
        Jedis jedis = new Jedis(); // 如果使用空参构造,默认值 "localhost",6379端口
        // 2.操作
        // sortedset 存储
        jedis.zadd("mysortedset",3,"亚瑟");
        jedis.zadd("mysortedset",30,"后裔");
        jedis.zadd("mysortedset",55,"孙悟空");
        // sortedset 获取
        Set<String> mysortedset = jedis.zrange("mysortedset", 0, -1);
        System.out.println(mysortedset);
        // 3.关闭连接
        jedis.close();
    }
 }   

运行结果如图所示:Jedis操作各种redis中的数据结构
在Redis客户端运行结果如图所示:Jedis操作各种redis中的数据结构

相关标签: Redis