前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Java操作Redis五大基础数据类型实践

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

原创
作者头像
小明爱吃火锅
发布2023-11-17 09:42:52
2860
发布2023-11-17 09:42:52
举报
文章被收录于专栏:小明说Java

一、引言

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腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、引言
  • 二、Java操作Redis五大基础数据类型
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档