Redis(三) - 使用Java操作Redis详解

发布于:2025-05-17 ⋅ 阅读:(14) ⋅ 点赞:(0)


前言

本文主要介绍如何使用 Java 操作 Redis 数据库,涵盖项目创建、依赖导入及 Redis 各数据类型(键、字符串、列表、集合、哈希表、有序集合)的常用操作示例。通过 IDEA + Maven 搭建开发环境,并基于 Jedis 客户端实现代码演示,适合 Java 开发者快速掌握 Redis 的编程接口与基本操作逻辑。


一、创建项目

在开始使用 Java 操作 Redis 之前,需先搭建开发环境。本章节以 IDEA 为开发工具,演示如何创建一个基于 Maven 的 Java 项目。通过 IDEA 的项目向导,依次选择 Java 项目类型、配置 Maven 管理依赖、指定 JDK 版本,快速生成标准的项目结构,为后续引入 Redis 依赖和编写代码做好准备。

打开IDEA,点击文件-->新建-->项目

在这里插入图片描述

如下图所示,选择Java-->输入项目名-->选择位置-->选择Maven-->选择JDK-->点击创建

在这里插入图片描述


二、导入依赖

Maven 是 Java 项目中常用的依赖管理工具,通过在 pom.xml 文件中添加 Redis 客户端(Jedis)的依赖配置,Maven 会自动下载并管理相关 Jar 包。本章节详细说明如何在 Maven 项目中引入 Jedis 依赖(版本为 5.0.1),并通过 IDEA 的依赖刷新功能完成配置,确保项目能够调用 Redis 的 Java API。

pom.xml文件中添加如下依赖配置。

    <dependencies>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>5.0.1</version>
        </dependency>
    </dependencies>

添加依赖后如下图所示,点击右上角的刷新图标下载配置Redis依赖包。

在这里插入图片描述


三、键操作

键(Key)是 Redis 中最基础的操作对象,本章节通过 Jedis 客户端演示键的常用操作,包括创建键值对(set/mset)、获取键值(get/mget)、查询所有键或匹配模式的键(keys)、判断键是否存在(exists)、重命名键(rename)、设置键过期时间(expire/ttl)、删除键(del)等。代码示例覆盖了键操作的核心功能,帮助理解 Redis 键的生命周期管理。

    public static void keyOperation() {
        // 连接本地的 Redis 服务
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.select(1);
        // 示例:给school键设置值为dy。
        String set = jedis.set("school", "dy");
        System.out.println(set);
        System.out.println("===============");
        // 示例:给k1键设置值为v1,k2键设置值为v2,k3键设置值为v3。
        jedis.mset("k1", "v1", "k2", "v2", "k3", "v3");
        System.out.println(jedis.mget("k1", "k2", "k3"));
        System.out.println("===============");
        // 示例1:查看所有键。
        Set<String> keys = jedis.keys("*");
        for (String key : keys) {
            System.out.println(key);
        }
        System.out.println("===============");
        // 示例2:查看所有以k开头的键。
        Set<String> keys1 = jedis.keys("k*");
        for (String key : keys1) {
            System.out.println(key);
        }
        System.out.println("===============");
        // 示例:查看scool键的值。
        String school = jedis.get("school");
        System.out.println(school);
        System.out.println("===============");
        // 示例:查看k1、k2、k3键的值。
        List<String> mget = jedis.mget("k1", "k2", "k3");
        for (String s : mget) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:查看k1键的值的序列化版本。
        byte[] k1s = jedis.dump("k1");
        System.out.println(Arrays.toString(k1s));
        System.out.println("===============");
        // 示例1:查看school键是否存在。
        Boolean exists = jedis.exists("school");
        System.out.println(exists);
        System.out.println("===============");
        // 示例2:查看k1、k2、k3、k4、k5键是否存在。
        long exists1 = jedis.exists("k1", "k2", "k3", "k4", "k5");
        System.out.println(exists1);
        // 示例:查看school键的值的类型。
        String type = jedis.type("school");
        System.out.println(type);
        System.out.println("===============");
        // 示例:把school键重命名为new_school键。
        String rename = jedis.rename("school", "new_school");
        System.out.println(rename);
        System.out.println("===============");
        // 示例:把k3键的生存时间设置为600秒。
        long expire = jedis.expire("k3", 600);
        System.out.println(expire);
        System.out.println("===============");
        // 示例:查看k3键的剩余存活时间。
        long ttl = jedis.ttl("k3");
        System.out.println(ttl);
        System.out.println("===============");
        // 示例:删除k3键的存活时间。
        long persist = jedis.persist("k3");
        System.out.println(persist);
        System.out.println("===============");
        // 示例1:删除school键。
        long del = jedis.del("school");
        System.out.println(del);
        System.out.println("===============");
        // 示例2:删除k1、k2、k3键。
        long del1 = jedis.del("k1", "k2", "k3");
        System.out.println(del1);
        System.out.println("===============");
        // 关闭连接
        jedis.close();
    }

四、字符串操作

字符串(String)是 Redis 最常用的数据类型,适用于存储简单的键值对。本章节通过示例代码演示字符串的常见操作,包括设置值(set/mset)、获取值(get/mget)、获取字符串长度(strlen)、截取子字符串(getrange)、替换指定索引内容(setrange)、追加内容(append)等。通过 getSet 方法还展示了原子性的 “获取旧值并设置新值” 操作。

    public static void stringOperation() {
        // 连接本地的 Redis 服务
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.select(1);
        // 示例:给字符串键str1设置值为value1。
        String set = jedis.set("str1", "value1");
        System.out.println(set);
        System.out.println("===============");
        // 示例:给字符串键str2、str3、str4分别设置值为value2、value3、value4。
        String mset = jedis.mset("str2", "value2", "str3", "value3", "str4", "value4");
        System.out.println(mset);
        System.out.println("===============");
        // 示例:获取字符串键str1的值。
        String str1 = jedis.get("str1");
        System.out.println(str1);
        System.out.println("===============");
        // 示例:获取字符串键str2、str3、str4的值。
        List<String> mget = jedis.mget("str2", "str3", "str4");
        for (String s : mget) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:获取字符串键str1的旧值,并设置新值为new_value1。
        String getSet = jedis.getSet("str1", "new_value1");
        System.out.println(getSet);
        // 查看设置后的新值。
        String str11 = jedis.get("str1");
        System.out.println(str11);
        System.out.println("===============");
        // 示例:获取字符串键str1的值的长度。
        long strlen = jedis.strlen("str1");
        System.out.println(strlen);
        System.out.println("===============");
        // 示例:获取字符串键str1的索引0-5的值的内容。
        String getrange = jedis.getrange("str1", 0, 5);
        System.out.println(getrange);
        System.out.println("===============");
        // 示例:把字符串键str1从索引2开始的后面三个字母的内容替换为aaa。
        long setrange = jedis.setrange("str1", 2, "aaa");
        System.out.println(setrange);
        // 查看设置后的新值。
        String str12 = jedis.get("str1");
        System.out.println(str12);
        System.out.println("===============");
        // 示例:向字符串键str1的结尾追加内容bbb。
        long append = jedis.append("str1", "bbb");
        System.out.println(append);
        // 查看设置后的新值。
        String str13 = jedis.get("str1");
        System.out.println(str13);
        // 关闭连接
        jedis.close();
    }

五、列表操作

列表(List)是 Redis 中有序、可重复的链表结构,支持从头部或尾部插入 / 删除元素。本章节通过代码示例演示列表的核心操作,包括右推(rpush)和左推(lpush)元素、获取列表范围元素(lrange)、获取指定索引元素(lindex)、弹出尾部(rpop)和头部(lpop)元素、移除指定元素(lrem)、获取列表长度(llen)等。列表操作适用于队列、栈等场景。

    public static void listOperation() {
        // 连接本地的 Redis 服务
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.select(1);
        // 示例:在列表右端向列表color中添加多个值。
        // rpush color blue green purple red white
        long rpush = jedis.rpush("color", "blue", "green", "purple", "red", "white");
        System.out.println(rpush);
        System.out.println("===============");
        // 示例:在列表左端向列表color中添加多个值。
        // lpush color blue2 green2 purple2 red2 white2
        long lpush = jedis.lpush("color", "blue2", "green2", "purple2", "red2", "white2");
        System.out.println(lpush);
        System.out.println("===============");
        // 示例1:获取列表color中索引0-5的元素。
        List<String> color = jedis.lrange("color", 0, 5);
        for (String s : color) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例2:获取列表color中的所有元素。
        List<String> color1 = jedis.lrange("color", 0, -1);
        for (String s : color1) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:获取列表color中索引为2的元素。
        String color2 = jedis.lindex("color", 2);
        System.out.println(color2);
        System.out.println("===============");
        // 示例:移除并获取列表color中的最后一个(最右端)元素。
        String rpop = jedis.rpop("color");
        System.out.println(rpop);
        System.out.println("===============");
        // 示例:移除并获取列表color中的第一个(最左端)元素。
        String lpop = jedis.lpop("color");
        System.out.println(lpop);
        System.out.println("===============");
        // 示例:获取列表color的长度。
        long llen = jedis.llen("color");
        System.out.println(llen);
        System.out.println("===============");
        // 示例1:从列表开头开始搜索移除列表color中1个red元素。
        long lrem = jedis.lrem("color", 1, "red");
        System.out.println(lrem);
        System.out.println("===============");
        // 示例2:从列表结尾开始搜索移除列表color中3个blue元素。
        long lrem1 = jedis.lrem("color", -3, "blue");
        System.out.println(lrem1);
        System.out.println("===============");
        // 示例3:移除列表color中所有blue2元素。
        long lrem2 = jedis.lrem("color", 0, "blue2");
        System.out.println(lrem2);
        System.out.println("===============");

        // 关闭连接
        jedis.close();
    }

六、集合操作

集合(Set)是 Redis 中无序、唯一的元素集合,支持高效的成员判断和集合运算。本章节通过示例代码演示集合的基本操作,包括添加成员(sadd)、获取成员数量(scard)、查询所有成员(smembers)、判断成员是否存在(sismember)、移除成员(srem)、移动成员到其他集合(smove)等。集合操作适用于去重、交集 / 并集 / 差集计算等场景。

    public static void setOperation() {
        // 连接本地的 Redis 服务
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.select(1);
        // 示例:给集合键set1添加多个成员。
        // sadd set1 mem1 mem2 mem3
        long sadd = jedis.sadd("set1", "mem1", "mem2", "mem3");
        System.out.println(sadd);
        System.out.println("===============");
        // 示例:查看集合键set1中成员的数量。
        long scard = jedis.scard("set1");
        System.out.println(scard);
        System.out.println("===============");
        // 示例:查看集合键set1中的所有成员。
        Set<String> set1 = jedis.smembers("set1");
        for (String s : set1) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:检查成员mem1是否在集合set1中。
        boolean sismember = jedis.sismember("set1", "mem1");
        System.out.println(sismember);
        System.out.println("===============");
        // 示例:移除集合set1中成员mem3。
        long srem = jedis.srem("set1", "mem3");
        System.out.println(srem);
        System.out.println("===============");
        // 示例:把集合set1中成员mem2移动到集合set2中。
        long smove = jedis.smove("set1", "set2", "mem2");
        System.out.println(smove);
        System.out.println("===============");
        // 关闭连接
        jedis.close();
    }

七、哈希表操作

哈希表(Hash)用于存储字段和值的映射关系,适合存储对象数据。本章节通过代码示例演示哈希表的常用操作,包括单个字段设置(hset)和批量设置(hmset)、获取单个字段值(hget)和多个字段值(hmget)、获取所有字段和值(hgetAll)、删除字段(hdel)等。哈希表操作能有效减少键的数量,提升数据结构化存储的效率。

    public static void hashOperation() {
        // 连接本地的 Redis 服务
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.select(1);
        // 示例:给哈希表student添加一个学生信息。
        // hset student:1 name zhangsan
        // hset student:1 age 19
        // hset student:1 address yunnan
        long hset = jedis.hset("student:1", "name", "zhangsan");
        System.out.println(hset);
        long hset1 = jedis.hset("student:1", "age", "19");
        System.out.println(hset1);
        long hset2 = jedis.hset("student:1", "address", "yunnan");
        System.out.println(hset2);
        System.out.println("===============");
        // 示例:给哈希表student添加一个学生信息。
        // hmset student:2 name lisi age 20 address guizhou
        Map<String, String> map = new HashMap<>();
        map.put("name", "lisi");
        map.put("age", "20");
        map.put("address", "guizhou");
        String hmset = jedis.hmset("student:2", map);
        System.out.println(hmset);
        System.out.println("===============");
        // 示例:获取hash键student:2中name字段的值。
        String hget = jedis.hget("student:2", "name");
        System.out.println(hget);
        System.out.println("===============");
        // 示例:获取hash键student:2中name、age和address字段的值。
        List<String> hget1 = jedis.hmget("student:2", "name", "age", "address");
        for (String s : hget1) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:获取hash键student:2中的所有字段和值。
        Map<String, String> student2 = jedis.hgetAll("student:2");
        for (Map.Entry<String, String> entry : student2.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
        System.out.println("===============");
        // 示例:获取hash键student:2中的所有字段。
        Set<String> hkeys = jedis.hkeys("student:2");
        for (String s : hkeys) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:获取hash键student:2中的所有值。
        List<String> hvals = jedis.hvals("student:2");
        for (String s : hvals) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:删除hash键student:2中的age和address字段。
        long hdel = jedis.hdel("student:2", "age", "address");
        System.out.println(hdel);
        System.out.println("===============");
        // 关闭连接
        jedis.close();
    }

八、有序集合操作

有序集合(Sorted Set)每个成员关联一个分数(Score),通过分数实现自动排序。本章节通过示例代码演示有序集合的核心操作,包括添加成员及分数(zadd)、获取成员数量(zcard)、统计指定分数范围的成员数(zcount)、按索引范围获取成员(zrange)、获取成员分数(zscore)、移除成员(zrem)等。有序集合适用于排行榜、范围查询等场景。

    public static void orderSetOperation() {
        // 连接本地的 Redis 服务
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.select(1);
        // 示例:给有序集合salary添加多个分数和成员。
        // zadd salary 5000 zhnagsan 4500 lisi 6000 wangwu
        Map<String, Double> map = new HashMap<>();
        map.put("zhangsan", 5000.0);
        map.put("lisi", 4500.0);
        map.put("wangwu", 6000.0);
        long zadd = jedis.zadd("salary", map);
        System.out.println(zadd);
        System.out.println("===============");
        // 示例:获取有序集合salary中的成员数量。
        long zcard = jedis.zcard("salary");
        System.out.println(zcard);
        System.out.println("===============");
        // 示例:计算有序集合中分数在5000-6500之间的成员数量。
        long zcount = jedis.zcount("salary", 5000, 6500);
        System.out.println(zcount);
        System.out.println("===============");
        // 示例:根据索引范围获取有序集合salary中的成员。
        // zrange salary 0 1
        List<String> salary = jedis.zrange("salary", 0, 1);
        for (String s : salary) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:获取有序集合salary中成员wangwu的分数。
        Double zscore = jedis.zscore("salary", "wangwu");
        System.out.println(zscore);
        System.out.println("===============");
        // 示例:移除有序集合salary中成员wangwu。
        long zrem = jedis.zrem("salary", "wangwu");
        System.out.println(zrem);
        System.out.println("===============");
        // 关闭连接
        jedis.close();
    }

九、完整代码

1. 完整代码

本章节提供上述所有操作示例的整合代码,方便开发者直接参考或运行。代码包含项目初始化、依赖配置及各数据类型操作的完整逻辑,可用于验证 Redis 功能或作为实际项目的基础模板。通过完整代码示例,可快速复现文中演示的所有操作,加深对 Java 操作 Redis 的整体理解。

package org.example;

import redis.clients.jedis.Jedis;

import java.util.*;

public class Main {
    public static void main(String[] args) {
        flushDB(1);
        stringOperation();
        keyOperation();
        listOperation();
        setOperation();
        hashOperation();
        orderSetOperation();
    }

    public static void flushDB(int dbIndex) {
        // 连接本地的 Redis 服务
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.select(dbIndex);
        // 清空数据库
        jedis.flushDB();
        // 关闭连接
        jedis.close();
    }

    public static void keyOperation() {
        // 连接本地的 Redis 服务
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.select(1);
        // 示例:给school键设置值为dy。
        String set = jedis.set("school", "dy");
        System.out.println(set);
        System.out.println("===============");
        // 示例:给k1键设置值为v1,k2键设置值为v2,k3键设置值为v3。
        jedis.mset("k1", "v1", "k2", "v2", "k3", "v3");
        System.out.println(jedis.mget("k1", "k2", "k3"));
        System.out.println("===============");
        // 示例1:查看所有键。
        Set<String> keys = jedis.keys("*");
        for (String key : keys) {
            System.out.println(key);
        }
        System.out.println("===============");
        // 示例2:查看所有以k开头的键。
        Set<String> keys1 = jedis.keys("k*");
        for (String key : keys1) {
            System.out.println(key);
        }
        System.out.println("===============");
        // 示例:查看scool键的值。
        String school = jedis.get("school");
        System.out.println(school);
        System.out.println("===============");
        // 示例:查看k1、k2、k3键的值。
        List<String> mget = jedis.mget("k1", "k2", "k3");
        for (String s : mget) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:查看k1键的值的序列化版本。
        byte[] k1s = jedis.dump("k1");
        System.out.println(Arrays.toString(k1s));
        System.out.println("===============");
        // 示例1:查看school键是否存在。
        Boolean exists = jedis.exists("school");
        System.out.println(exists);
        System.out.println("===============");
        // 示例2:查看k1、k2、k3、k4、k5键是否存在。
        long exists1 = jedis.exists("k1", "k2", "k3", "k4", "k5");
        System.out.println(exists1);
        // 示例:查看school键的值的类型。
        String type = jedis.type("school");
        System.out.println(type);
        System.out.println("===============");
        // 示例:把school键重命名为new_school键。
        String rename = jedis.rename("school", "new_school");
        System.out.println(rename);
        System.out.println("===============");
        // 示例:把k3键的生存时间设置为600秒。
        long expire = jedis.expire("k3", 600);
        System.out.println(expire);
        System.out.println("===============");
        // 示例:查看k3键的剩余存活时间。
        long ttl = jedis.ttl("k3");
        System.out.println(ttl);
        System.out.println("===============");
        // 示例:删除k3键的存活时间。
        long persist = jedis.persist("k3");
        System.out.println(persist);
        System.out.println("===============");
        // 示例1:删除school键。
        long del = jedis.del("school");
        System.out.println(del);
        System.out.println("===============");
        // 示例2:删除k1、k2、k3键。
        long del1 = jedis.del("k1", "k2", "k3");
        System.out.println(del1);
        System.out.println("===============");
        // 关闭连接
        jedis.close();
    }

    public static void stringOperation() {
        // 连接本地的 Redis 服务
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.select(1);
        // 示例:给字符串键str1设置值为value1。
        String set = jedis.set("str1", "value1");
        System.out.println(set);
        System.out.println("===============");
        // 示例:给字符串键str2、str3、str4分别设置值为value2、value3、value4。
        String mset = jedis.mset("str2", "value2", "str3", "value3", "str4", "value4");
        System.out.println(mset);
        System.out.println("===============");
        // 示例:获取字符串键str1的值。
        String str1 = jedis.get("str1");
        System.out.println(str1);
        System.out.println("===============");
        // 示例:获取字符串键str2、str3、str4的值。
        List<String> mget = jedis.mget("str2", "str3", "str4");
        for (String s : mget) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:获取字符串键str1的旧值,并设置新值为new_value1。
        String getSet = jedis.getSet("str1", "new_value1");
        System.out.println(getSet);
        // 查看设置后的新值。
        String str11 = jedis.get("str1");
        System.out.println(str11);
        System.out.println("===============");
        // 示例:获取字符串键str1的值的长度。
        long strlen = jedis.strlen("str1");
        System.out.println(strlen);
        System.out.println("===============");
        // 示例:获取字符串键str1的索引0-5的值的内容。
        String getrange = jedis.getrange("str1", 0, 5);
        System.out.println(getrange);
        System.out.println("===============");
        // 示例:把字符串键str1从索引2开始的后面三个字母的内容替换为aaa。
        long setrange = jedis.setrange("str1", 2, "aaa");
        System.out.println(setrange);
        // 查看设置后的新值。
        String str12 = jedis.get("str1");
        System.out.println(str12);
        System.out.println("===============");
        // 示例:向字符串键str1的结尾追加内容bbb。
        long append = jedis.append("str1", "bbb");
        System.out.println(append);
        // 查看设置后的新值。
        String str13 = jedis.get("str1");
        System.out.println(str13);
        // 关闭连接
        jedis.close();
    }

    public static void listOperation() {
        // 连接本地的 Redis 服务
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.select(1);
        // 示例:在列表右端向列表color中添加多个值。
        // rpush color blue green purple red white
        long rpush = jedis.rpush("color", "blue", "green", "purple", "red", "white");
        System.out.println(rpush);
        System.out.println("===============");
        // 示例:在列表左端向列表color中添加多个值。
        // lpush color blue2 green2 purple2 red2 white2
        long lpush = jedis.lpush("color", "blue2", "green2", "purple2", "red2", "white2");
        System.out.println(lpush);
        System.out.println("===============");
        // 示例1:获取列表color中索引0-5的元素。
        List<String> color = jedis.lrange("color", 0, 5);
        for (String s : color) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例2:获取列表color中的所有元素。
        List<String> color1 = jedis.lrange("color", 0, -1);
        for (String s : color1) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:获取列表color中索引为2的元素。
        String color2 = jedis.lindex("color", 2);
        System.out.println(color2);
        System.out.println("===============");
        // 示例:移除并获取列表color中的最后一个(最右端)元素。
        String rpop = jedis.rpop("color");
        System.out.println(rpop);
        System.out.println("===============");
        // 示例:移除并获取列表color中的第一个(最左端)元素。
        String lpop = jedis.lpop("color");
        System.out.println(lpop);
        System.out.println("===============");
        // 示例:获取列表color的长度。
        long llen = jedis.llen("color");
        System.out.println(llen);
        System.out.println("===============");
        // 示例1:从列表开头开始搜索移除列表color中1个red元素。
        long lrem = jedis.lrem("color", 1, "red");
        System.out.println(lrem);
        System.out.println("===============");
        // 示例2:从列表结尾开始搜索移除列表color中3个blue元素。
        long lrem1 = jedis.lrem("color", -3, "blue");
        System.out.println(lrem1);
        System.out.println("===============");
        // 示例3:移除列表color中所有blue2元素。
        long lrem2 = jedis.lrem("color", 0, "blue2");
        System.out.println(lrem2);
        System.out.println("===============");

        // 关闭连接
        jedis.close();
    }

    public static void setOperation() {
        // 连接本地的 Redis 服务
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.select(1);
        // 示例:给集合键set1添加多个成员。
        // sadd set1 mem1 mem2 mem3
        long sadd = jedis.sadd("set1", "mem1", "mem2", "mem3");
        System.out.println(sadd);
        System.out.println("===============");
        // 示例:查看集合键set1中成员的数量。
        long scard = jedis.scard("set1");
        System.out.println(scard);
        System.out.println("===============");
        // 示例:查看集合键set1中的所有成员。
        Set<String> set1 = jedis.smembers("set1");
        for (String s : set1) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:检查成员mem1是否在集合set1中。
        boolean sismember = jedis.sismember("set1", "mem1");
        System.out.println(sismember);
        System.out.println("===============");
        // 示例:移除集合set1中成员mem3。
        long srem = jedis.srem("set1", "mem3");
        System.out.println(srem);
        System.out.println("===============");
        // 示例:把集合set1中成员mem2移动到集合set2中。
        long smove = jedis.smove("set1", "set2", "mem2");
        System.out.println(smove);
        System.out.println("===============");
        // 关闭连接
        jedis.close();
    }

    public static void hashOperation() {
        // 连接本地的 Redis 服务
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.select(1);
        // 示例:给哈希表student添加一个学生信息。
        // hset student:1 name zhangsan
        // hset student:1 age 19
        // hset student:1 address yunnan
        long hset = jedis.hset("student:1", "name", "zhangsan");
        System.out.println(hset);
        long hset1 = jedis.hset("student:1", "age", "19");
        System.out.println(hset1);
        long hset2 = jedis.hset("student:1", "address", "yunnan");
        System.out.println(hset2);
        System.out.println("===============");
        // 示例:给哈希表student添加一个学生信息。
        // hmset student:2 name lisi age 20 address guizhou
        Map<String, String> map = new HashMap<>();
        map.put("name", "lisi");
        map.put("age", "20");
        map.put("address", "guizhou");
        String hmset = jedis.hmset("student:2", map);
        System.out.println(hmset);
        System.out.println("===============");
        // 示例:获取hash键student:2中name字段的值。
        String hget = jedis.hget("student:2", "name");
        System.out.println(hget);
        System.out.println("===============");
        // 示例:获取hash键student:2中name、age和address字段的值。
        List<String> hget1 = jedis.hmget("student:2", "name", "age", "address");
        for (String s : hget1) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:获取hash键student:2中的所有字段和值。
        Map<String, String> student2 = jedis.hgetAll("student:2");
        for (Map.Entry<String, String> entry : student2.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
        System.out.println("===============");
        // 示例:获取hash键student:2中的所有字段。
        Set<String> hkeys = jedis.hkeys("student:2");
        for (String s : hkeys) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:获取hash键student:2中的所有值。
        List<String> hvals = jedis.hvals("student:2");
        for (String s : hvals) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:删除hash键student:2中的age和address字段。
        long hdel = jedis.hdel("student:2", "age", "address");
        System.out.println(hdel);
        System.out.println("===============");
        // 关闭连接
        jedis.close();
    }

    public static void orderSetOperation() {
        // 连接本地的 Redis 服务
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.select(1);
        // 示例:给有序集合salary添加多个分数和成员。
        // zadd salary 5000 zhnagsan 4500 lisi 6000 wangwu
        Map<String, Double> map = new HashMap<>();
        map.put("zhangsan", 5000.0);
        map.put("lisi", 4500.0);
        map.put("wangwu", 6000.0);
        long zadd = jedis.zadd("salary", map);
        System.out.println(zadd);
        System.out.println("===============");
        // 示例:获取有序集合salary中的成员数量。
        long zcard = jedis.zcard("salary");
        System.out.println(zcard);
        System.out.println("===============");
        // 示例:计算有序集合中分数在5000-6500之间的成员数量。
        long zcount = jedis.zcount("salary", 5000, 6500);
        System.out.println(zcount);
        System.out.println("===============");
        // 示例:根据索引范围获取有序集合salary中的成员。
        // zrange salary 0 1
        List<String> salary = jedis.zrange("salary", 0, 1);
        for (String s : salary) {
            System.out.println(s);
        }
        System.out.println("===============");
        // 示例:获取有序集合salary中成员wangwu的分数。
        Double zscore = jedis.zscore("salary", "wangwu");
        System.out.println(zscore);
        System.out.println("===============");
        // 示例:移除有序集合salary中成员wangwu。
        long zrem = jedis.zrem("salary", "wangwu");
        System.out.println(zrem);
        System.out.println("===============");
        // 关闭连接
        jedis.close();
    }
}

2. 项目下载

下载地址:https://download.csdn.net/download/zcs2312852665/90849803?spm=1001.2014.3001.5501


网站公告

今日签到

点亮在社区的每一天
去签到