JedisCluster API 整理

本文主要介绍了如何使用JedisCluster API进行Redis操作,包括启动Windows版Redis服务器的命令,以及利用JedisCluster进行键值对测试、字符串、整数浮点数、列表、集合、散列、有序集合和排序等数据类型的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

windows版redis启动服务器命令:redis-server redis.windows.conf

 图表来自菜鸟教程:

 列表的操作命令

序号 命令及描述
1 BLPOP key1 [key2 ] timeout
移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
2 BRPOP key1 [key2 ] timeout
移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
3 BRPOPLPUSH source destination timeout
从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
4 LINDEX key index
通过索引获取列表中的元素
5 LINSERT key BEFORE|AFTER pivot value
在列表的元素前或者后插入元素
6 LLEN key
获取列表长度
7 LPOP key
移出并获取列表的第一个元素
8 LPUSH key value1 [value2]
将一个或多个值插入到列表头部
9 LPUSHX key value
将一个值插入到已存在的列表头部
10 LRANGE key start stop
获取列表指定范围内的元素
11 LREM key count value
移除列表元素
12 LSET key index value
通过索引设置列表元素的值
13 LTRIM key start stop
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
14 RPOP key
移除列表的最后一个元素,返回值为移除的元素。
15 RPOPLPUSH source destination
移除列表的最后一个元素,并将该元素添加到另一个列表并返回
16 RPUSH key value1 [value2]
在列表中添加一个或多个值
17 RPUSHX key value
为已存在的列表添加值

 

前提:下面的jedis变量为JedisCluster(redis.clients.jedis.JedisCluster)

1、测试key:value数据

    /**
     * 测试key:value数据
     * 集群中flushDB、keys废弃
     */
    @Test
    public void testKey() throws InterruptedException {
        //System.out.println("清空数据:"+jedis.flushDB());
        System.out.println("判断某个键是否存在:"+jedis.exists("username"));
        System.out.println("新增<'username','wukong'>的键值对:"+jedis.set("username", "xiaohai"));
        System.out.println("是否存在:"+jedis.exists("username"));
        System.out.println("新增<'password','password'>的键值对:"+jedis.set("password", "123456"));
        //Set<String> keys = jedis.keys("*");
        // System.out.println("系统中所有的键如下:"+keys);
        System.out.println("删除键password:"+jedis.del("password"));
        System.out.println("判断键password是否存在:"+jedis.exists("password"));
        System.out.println("设置键username的过期时间为10s:"+jedis.expire("username", 10));
        TimeUnit.SECONDS.sleep(2); // 线程睡眠2秒System.out.println("查看键username的剩余生存时间:"+jedis.ttl("username"));
        System.out.println("查看键username的剩余生存时间:"+jedis.ttl("username"));
        System.out.println("移除键username的生存时间:"+jedis.persist("username"));
        System.out.println("查看键username的剩余生存时间:"+jedis.ttl("username"));
        System.out.println("查看键username所存储的值的类型:"+j
### Redis 思维导图概述 Redis 是一种高性能的键值对存储系统,广泛应用于缓存、会话管理以及实时数据分析等领域[^2]。以下是基于提供的引用内容整理出的 Redis 思维导图的关键部分。 #### 一、数据结构 Redis 提供了多种内置的数据结构来满足不同的应用场景需求: 1. **字符串 (String)** 字符串是最简单的数据类型,在 Redis 中可以保存数值并支持原子操作,例如自增或自减命令 `INCR` 和 `DECR`[^3]。 2. **列表 (List)** 列表是一个双向链表,适合实现队列和栈的功能。通过命令如 `LPUSH`, `RPUSH`, `LPOP`, `RPOP` 可以方便地向两端添加或移除元素。 3. **集合 (Set)** 集合是一种无序且不允许重复成员的数据结构,适用于去重场景。常用命令有 `SADD`, `SMEMBERS`, `SINTER` 等。 4. **有序集合 (Sorted Set)** 这是在集合基础上增加了分数的概念,使得每个成员都关联一个分值用于排序。典型应用包括排行榜等功能。 5. **哈希 (Hash)** 哈希允许将字段映射到相应的值上,非常适合表示对象属性及其对应的值。常见指令为 `HSET`, `HGETALL` 等。 #### 二、功能特性 除了丰富的数据结构外,Redis 还具备许多强大的功能特性: 1. **持久化机制** 支持两种主要方式:RDB(快照)和 AOF(追加日志)。前者定期创建数据集的时间点快照;后者记录服务器接收到的所有写入操作以便于恢复。 2. **高可用性和集群模式** 使用 Sentinel 实现监控、通知及自动故障转移;而 Cluster 方案允许多台机器组成分布式环境从而提升性能与可靠性。 3. **发布订阅模式** 客户端可以通过 SUBSCRIBE 订阅频道等待消息推送,PUBLISH 发送信息给指定通道上的所有监听者。 4. **Lua 脚本执行** 用户编写 Lua 脚本来封装复杂逻辑并在服务端一次性完成处理减少网络开销。 5. **客户端库对比** - Jedis: 提供完整的 Redis API 封装,易于集成至 Java 应用程序中[^1]。 - Lettuce: 更现代化的选择,强调异步编程模型并通过 Netty 框架优化 IO 效率。 - Redisson: 主打简化开发体验的同时也牺牲了一定灵活性,比如缺少对某些底层特性的直接访问权限。 ```java // 示例代码展示如何利用Jedis连接Redis实例 import redis.clients.jedis.Jedis; public class Main { public static void main(String[] args){ try(Jedis jedis=new Jedis("localhost")){ System.out.println(jedis.ping()); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值