Redis常用命令分类总结

本文介绍了Redis单点和集群的常用命令。单点方面,新安装时需修改redis.conf三处内容,还提及服务端启动、客户端连接及关闭服务等命令。集群方面,涵盖创建集群、检查主从状态、节点操作、槽操作、键操作以及发布订阅等相关命令。

Redis单点常用命令

  • 新安装时redis.conf中需要修改三处内容:
  1. daemonize -> no
  2. bind 127.0.0.1注释掉
  3. protected-mod -> no
  • redis-server redis.conf 服务端启动命令

  • redis-cli -p 6379 或者直接 redis-cli 客户端连接命令

  • redis-cli -h host -p port -a password 通过IP、端口和密码连接

  • 通过客户端关闭服务:redis-cli -p 6379 shutdown 或者直接 redis-cli shutdown,或者直接进入到客户端操作入口,使用shutdown命令。

  • 实际上凡是以redis-cli开头的命令,都可以直接在客户端操作入口直接使用,redis-cli命令就相当于以客户端的身份发送一条指令

  • scan命令,从海量key中搜索某个匹配的key,相当于分页

  • 在redis中,*号为通配符,?为占位符


集群常用命令:(配合本篇文章食用更佳)

  • 创建集群命令:
./src/redis-trib.rb create --replicas 2 172.17.0.2:6379 172.17.0.3:6379 172.17.0.4:6379 172.17.0.5:6379 172.17.0.6:6379 172.17.0.7:6379 172.17.0.8:6379 172.17.0.9:6379 172.17.0.10:6379
  • info replication 检查主从状态的指令
  • slaveof 192.168.116.132 6379 挂载到master节点
  • redis-sentinel sentinel-6379.conf 启动哨兵的命令
  • cluster info打印集群的信息
  • cluster nodes列出集群当前已知的所有节点( node),以及这些节点的相关信息
    节点
  • cluster meet <ip> <port> 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。
  • cluster forget <node_id> 从集群中移除 node_id 指定的节点。
  • cluster replicate <master_node_id> 将当前从节点设置为 node_id 指定的master节点的slave节点。只能针对slave节点操作。
  • cluster saveconfig 将节点的配置文件保存到硬盘里面。
    槽(slot)
  • cluster addslots <slot> [slot ...] 将一个或多个槽( slot)指派( assign)给当前节点。
  • cluster delslots <slot> [slot ...] :移除一个或多个槽对当前节点的指派。
  • cluster flushslots :移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。
  • cluster setslot <slot> node <node_id> 将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给
    另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。
  • cluster setslot <slot> migrating <node_id>将本节点的槽 slot 迁移到 node_id 指定的节点中。
  • cluster setslot <slot> importing <node_id>从 node_id 指定的节点中导入槽 slot 到本节点。
  • cluster setslot <slot> stable取消对槽 slot 的导入( import)或者迁移( migrate)。
  • cluster keyslot <key>计算键 key 应该被放置在哪个槽上。
  • cluster countkeysinslot <slot>返回槽 slot 目前包含的键值对数量。
  • cluster getkeysinslot <slot> <count>返回 count 个 slot 槽中的键 。

发布订阅

  • subscribe slgChat 创建订阅频道slgChat
  • publish slgChat "Hello" 向slgChat这个频道发送消息
  • psubscribe news.* tweet.* 同时订阅多个频道
  • UNSUBSCRIBE [channel [channel …]] 退订某个或所有频道
  • PUBSUB CHANNELS [pattern] 查看订阅与发布系统状态
<think>好的,我现在需要帮助用户了解Redis中有序集合(zset)的常用命令以及操作。首先,我需要回顾用户提供的引用内容,确保回答准确并正确引用来源。用户给出的四个引用主要涉及zset的基本命令、集合间操作、ZRANGEBYSCORE的使用场景以及zset在排行榜中的应用。 首先,我应该整理zset的常用命令,比如ZADD、ZCARD、ZCOUNT等,这些是基本操作,用户可能常用到。每个命令需要简单说明用途和示例,像ZADD添加元素,ZRANGE获取范围元素。然后,集合间的操作如ZINTERSTORE和ZUNIONSTORE,这些用于交集和并集,可能用户在处理多个有序集合时用到。 接下来是分数操作命令,比如ZINCRBY,这在排行榜中更新分数很常见,比如游戏得分增减。范围查询命令如ZRANGEBYSCORE和ZREVRANGEBYSCORE,用户可能需要根据分数范围获取数据,分页的话结合LIMIT参数。 然后,应用场景部分,用户可能想知道zset的实际用途,比如排行榜、延迟队列、优先级任务等,这里可以结合引用4提到的排行榜实现,强调zset的高效性。 需要注意的是,用户要求使用中文回答,行内公式用$...$,但这里可能不太涉及数学公式,更多是命令和代码示例。代码块需要用反引号包裹,比如示例中的Python代码。同时,每个引用在回答末尾要自然地添加标识,比如[^1]、[^2]等。 用户的问题中还提到生成相关问题,我需要根据内容提出相关的问题,比如内部编码结构、性能分析、应用场景比较等,确保问题与内容相关且有深度。 最后,检查是否所有命令都覆盖到引用中的内容,比如ZPOPMAX、ZPOPMIN等,是否有遗漏。同时,确保引用标注正确,比如ZINTERSTORE在引用2中提到,ZRANGEBYSCORE在引用3,排行榜在引用4。 可能还需要注意命令的语法是否正确,比如ZADD的用法,ZINCRBY的参数顺序,以及示例中的Redis命令行格式是否正确。避免技术错误,比如参数顺序或选项是否正确,例如WITHSCORES的位置。 总结步骤: 1. 分类整理常用命令:基本操作、集合间操作、分数操作、范围查询。 2. 每个命令给出简要说明和示例,引用对应的来源。 3. 应用场景部分结合引用内容,强调性能和用例。 4. 生成相关问题,确保覆盖命令使用、内部实现、优化等。 5. 检查引用标注正确,语法正确,符合用户格式要求。</think>### Redis有序集合(zset)常用命令详解 #### 一、基本操作命令 1. **添加/更新元素** `ZADD key [NX|XX] [CH] [INCR] score member` 用于向有序集合添加元素或更新分数。例如: ```bash ZADD leaderboard 100 "Alice" # 添加Alice,分数为100[^2] ``` 参数`INCR`可配合`ZINCRBY`实现分数累加[^2]。 2. **统计元素数量** `ZCARD key`返回集合元素总数,`ZCOUNT key min max`统计分数区间的元素数量[^1]。 3. **范围查询** - `ZRANGE key start stop [WITHSCORES]`:按升序获取排名范围内的元素。 - `ZREVRANGE key start stop [WITHSCORES]`:按降序查询[^1]。 #### 二、集合间操作 1. **交集与并集** `ZINTERSTORE`和`ZUNIONSTORE`支持对多个有序集合求交集/并集,并将结果存储到新集合,例如: ```bash ZINTERSTORE result 2 set1 set2 WEIGHTS 1 2 # 交集结果乘以权重后存储[^2] ``` #### 三、分数操作 1. **分数增减** `ZINCRBY key increment member`可对指定成员的分数增减,例如: ```bash ZINCRBY leaderboard 50 "Alice" # Alice分数+50 ``` 2. **按分数范围查询** `ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]`支持按分数筛选,例如: ```bash ZRANGEBYSCORE leaderboard 80 200 LIMIT 0 5 # 获取分数80-200的前5名[^3] ``` #### 四、应用场景 1. **实时排行榜** 利用$O(\log N)$时间复杂度实现快速排序和范围查询,例如游戏积分排名[^4]。 2. **延迟队列** 通过分数存储任务执行时间,用`ZRANGEBYSCORE`轮询到期任务。 3. **优先级调度** 分数表示优先级,配合`ZPOPMAX`获取最高优先级任务。 #### 五、性能优化 - 优先使用`ZRANGE`代替多次`ZSCORE`查询,减少网络开销。 - 控制有序集合大小,避免单个集合元素过多影响性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值