基于Java操作Redis五大基础数据类型实践

2023-11-17 09:42:52 浏览数 (1)

一、引言

Redis是一个高性能的键值对存储系统,被广泛应用于各种场景。Java作为一门强大的编程语言,拥有丰富的库和工具,使得开发者能够轻松操作Redis。在之前一篇Java连接Redis基础案例,也讲解了如何使用Java连接Redis了,也算是对Redis有初步认识,这一篇将深入Redis基础数据类型操作,并通过Java实例代码来演示实现过程。关于Redis五大基础数据类型可看看这篇博文:https://cloud.tencent.com/developer/article/2353231

二、Java操作Redis五大基础数据类型

String类型

Java操作Redis的String类型,算是比较基础和常见,在平时工作开发中用String类型进行redis缓存操作也是比较多,下面通过代码示例进行说明:

代码语言:java复制
import redis.clients.jedis.Jedis;
import java.util.Random;


public class RedisStringExample {

    public static void main(String[] args) {

        // 创建一个Jedis连接池
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(100);
        jedisPoolConfig.setMaxIdle(50);
        jedisPoolConfig.setMinIdle(10);
        jedisPoolConfig.setTestOnBorrow(true);
        jedisPoolConfig.setTestOnReturn(true);

        JedisPool jedisPool = new JedisPool(jedisPoolConfig, "localhost", 6379);


        // 创建一个字符串
        String str = "Hello, Redis!";

        // 设置字符串
        jedisPool.set(str);

        // 获取字符串
        String getStr = jedisPool.get();
        System.out.println(getStr);

        // 拼接字符串
        String concatStr = "Hello, "   str;
        jedisPool.set(concatStr);


        // 拆分字符串
        String[] splitStr = concatStr.split(",");
        System.out.println(splitStr.length);

        // 删除字符串
        jedisPool.del(str);

    }

}

List类型

Java操作Redis的List类型,有序重复列表,主要包括添加、获取、删除元素等操作。下面通过代码示例进行说明:

代码语言:java复制
import redis.clients.jedis.Jedis;

import java.util.ArrayList;



public class RedisListExample {

    public static void main(String[] args) {

        // 创建一个Jedis连接池
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(100);
        jedisPoolConfig.setMaxIdle(50);
        jedisPoolConfig.setMinIdle(10);
        jedisPoolConfig.setTestOnBorrow(true);
        jedisPoolConfig.setTestOnReturn(true);


        JedisPool jedisPool = new JedisPool(jedisPoolConfig, "localhost", 6379);


        // 创建一个列表

        ArrayList<String> list = new ArrayList<String>();

        list.add("apple");
        list.add("orange");
        list.add("banana");


        // 添加元素
        jedisPool.set(list);


        // 获取列表
        ArrayList<String> getList = jedisPool.get();
        System.out.println(getList);



        // 删除列表

        jedisPool.del(list);

    }

}

Hash类型

Java操作Redis的Hash类型,等价于<key,<key,object>>,也就是对于Java中的话结构是Map里面的值是Map,主要包括设置、获取、删除键值对等操作。下面通过代码示例进行说明:

代码语言:java复制
import redis.clients.jedis.Jedis;

import java.util.HashMap;



public class RedisHashExample {

    public static void main(String[] args) {

        // 创建一个Jedis连接池

        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();

        jedisPoolConfig.setMaxTotal(100);

        jedisPoolConfig.setMaxIdle(50);

        jedisPoolConfig.setMinIdle(10);

        jedisPoolConfig.setTestOnBorrow(true);

        jedisPoolConfig.setTestOnReturn(true);



        JedisPool jedisPool = new JedisPool(jedisPoolConfig, "localhost", 6379);



        // 创建一个Hash

        HashMap<String, String> hash = new HashMap<String, String>();

        hash.put("name", "john");

        hash.put("age", "30");



        // 设置Hash

        jedisPool.set(hash);



        // 获取Hash

        HashMap<String,String> getHash = jedisPool.get();

        System.out.println(getHash);



        // 删除Hash

        jedisPool.del(hash);

    }

}

Set类型

Java操作Redis的Set类型,Set类型是主要处理需要去重的数据,但是顺序不能控制,包括添加、获取、删除元素等操作。下面通过代码示例进行说明:

代码语言:java复制
import redis.clients.jedis.Jedis;

import java.util.HashSet;



public class RedisSetExample {

    public static void main(String[] args) {

        // 创建一个Jedis连接池

        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();

        jedisPoolConfig.setMaxTotal(100);

        jedisPoolConfig.setMaxIdle(50);

        jedisPoolConfig.setMinIdle(10);

        jedisPoolConfig.setTestOnBorrow(true);

        jedisPoolConfig.setTestOnReturn(true);



        JedisPool jedisPool = new JedisPool(jedisPoolConfig, "localhost", 6379);



        // 创建一个Set

        HashSet<String> set = new HashSet<String>();

        set.add("apple");

        set.add("orange");

        set.add("banana");



        // 添加元素

        jedisPool.set(set);



        // 获取Set

        HashSet<String> getSet = jedisPool.get();

        System.out.println(getSet);



        // 删除Set

        jedisPool.del(set);

    }

}

Zset类型

Java操作Redis的Zset类型,完善set类型不可排序,新增一个score参数,对数据进行排序,主要包括添加、获取、删除元素,以及有序集合的合并、比较等操作。下面通过代码示例进行说明:

代码语言:java复制
import redis.clients.jedis.Jedis;

import java.util.List;

import java.util.Set;



public class RedisZsetExample {

    public static void main(String[] args) {

        // 创建一个Jedis连接池

        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();

        jedisPoolConfig.setMaxTotal(100);

        jedisPoolConfig.setMaxIdle(50);

        jedisPoolConfig.setMinIdle(10);

        jedisPoolConfig.setTestOnBorrow(true);

        jedisPoolConfig.setTestOnReturn(true);



        JedisPool jedisPool = new JedisPool(jedisPoolConfig, "localhost", 6379);



        // 创建一个Zset

        Long zset = 30L;

        String key = "myzset";

        Set<String> set = new HashSet<String>();

        set.add("apple");

        set.add("orange");

        set.add("banana");



        // 添加元素

        jedisPool.set(set);



        // 获取Zset

        List<String> getZset = jedisPool.get();

        System.out.println(getZset);



        // 删除Zset

        jedisPool.del(zset);



        // 合并Zset

        Long zset2 = 20L;

        String key2 = "myzset2";

        Set<String> set2 = new HashSet<String>();

        set2.add("apple");

        set2.add("orange");

        set2.add("banana");



        // 合并Zset

        jedisPool.set(zset2, set2);



        // 比较Zset

        Long result = jedisPool.zadd(key, set2);

        System.out.println(result);



        // 获取Zset

        List<String> getZset2 = jedisPool.zrangeByScore(key, 0, 10);

        System.out.println(getZset2);



        // 关闭连接

        jedisPool.close();

    }

}

以上代码演示了如何使用Java操作Redis的String、List、Hash、Set和Zset类型。注意,在使用Java操作Redis时,需要导入redis的Java客户端库,并在代码中导入相关的包,可以用maven进行项目管理,这样就方便依赖导入。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞