前言
本文主要介绍如何使用 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