redis 常见指令操作

本文介绍了Redis这一非关系型数据库的基本数据类型及其常用操作指令,包括字符串、哈希、列表和集合等类型的设置、获取和其他操作,并提供了部分命令示例。

redis 是常用的非关系型数据库.
所以我们也需要了解他的一些常用的操作指令

redis的数据类型主要分为字符串,哈希,链表,集合等.

字符串
set--
set name 1234 //设置key对应的值为string类型的value
setnx name itcast_new //设置key对应的string类型的值,不存在则插入成功
setex color 10 red // 设置key对应的值为string类型的value,并指定此键值对应的有效期
setrange email 10 gmail.com //这个命令的作用是覆盖key对应的string的一部分
mset key1 python key2 c++ //一次设置多个key的值,成功返回ok(key1=python,key2=c++)
getset name itcast_new //设置key的值,并返回key的旧值


get--
get name  //获取key对应的值
getrange name 0 4 //获取指定key的value值的子字符串
mget key1 key2 key3 //一次获取多个key的值

other--
incr age //对key的值做加加操作
incrby age 5 //同incr类似,加指定值 ,key不存在时候会设置key,并认为原来的value是 0
decr 对key的值做的是减减操作,decr一个不存在key,则设置key为1
decrby 同decr,减指定值
append name redis //给指定key的字符串值追加value



hash-字典常用命令 (key --> 键值对)
set--
HSET myhash field1 "Hello"  //设置hash里面字段值
HSETNX myhash field "Hello" // 设置一个不存在的值,当field存在,则设置失败
HMSET myhash field1 "Hello" field2 "World" //设置 key 指定的哈希集中指定字段的值


get--
HGET myhash field1 // 获取指定的hash field值
HMGET myhash field1 field2 //获取全部指定的hash filed

other--
HINCRBY myhash field 1 //指定的hash filed 加上给定值
hexists myhash field1  //测试指定field是否存在
hlen myhash // 返回指定hash的field数量
hkeys myhash //返回hash的所有field
hvals myhash //返回hash的所有value
hgetall myhash //获取某个hash中全部的filed及value


list--列表
set--
LPUSH mylist "world"  //从队列左侧插入链表
RPUSH mylist "one"  //从队列右侧插入链表
LSET mylist 0 "four"  //设置 index 位置的list元素的值为 value

get--
LRANGE mylist 0 -1 //查看链表中所有元素的值
LINDEX mylist 0 //根据索引查找链表中0号位置的值


other--
LPOP mylist //从队列左右出一个元素
LLEN mylist //返回存储在 key 里的list的长度
LREM mylist -2 "hello" //移出列表中所有值为hello的元素



set--集合

set--
SADD myset "Hello" //添加一个或多个指定的member元素到集合的 key中

get--
SMEMBERS myset //获得集合中所有的KEY


other--
SCARD myset //集合元素的数量
SDIFF key1 key2 //获取key1和key2的差集

SREM myset "one" //删除key集合中的value



------
删除
DEL key

keys * //查看key值

参考网址 redis 中文官方网站 http://www.redis.cn/

<think>好的,用户想查找关于Redis集群的常见命令操作指南。我需要先整理出Redis集群的基本命令,包括集群管理、节点操作、数据迁移、故障处理等方面。首先,想到集群状态查看命令,比如CLUSTER INFO和CLUSTER NODES。这两个命令能显示集群的健康状态和节点信息,是基础中的基础。然后,节点管理方面,CLUSTERMEET用于添加节点,CLUSTERFORGET则是移除节点,这些是组建和调整集群结构的关键命令。 接下来是数据槽位相关的操作。用户可能需要分配槽位,比如CLUSTER ADDSLOTS,或者重新分片,使用CLUSTERRESHARD。还有查看槽位分布的CLUSTER SLOTS,这些对于数据分布和扩容很重要。 故障处理部分,比如主节点失效时的故障转移,CLUSTERFAILOVER命令,以及手动执行故障转移的选项。此外,检查集群是否完整的CLUSTER HEALTH命令可能也有必要提到。数据迁移和扩容方面,用户可能需要参考引用中的内容,比如引用[4]提到的数据迁移方法和注意事项,这里可以结合CLUSTERSETSLOT和迁移命令。不过具体的命令操作可能需要更详细的说明,比如如何使用redis-cli进行重新分片。 另外,用户提供的引用中有关于Docker部署集群的示例(引用[3]),但用户现在的问题是关于命令操作,所以可能需要侧重在命令本身而不是部署步骤。不过可以提到创建集群时使用的redis-cli--clustercreate命令,这也是常见操作的一部分。还需要考虑常见的使用场景,比如添加新节点后的槽位分配,处理节点故障后的恢复步骤,以及日常维护中的集群检查。例如,引用[1]和[4]中提到的部署和维护指南,可以关联到这些命令的实际应用。另外,注意用户要求命令使用正确格式,比如行内数学表达式用$...$,但这里主要是命令示例,可能不需要数学公式,但代码块需要用正确的格式。例如,Redis命令应该用代码块包裹,并确保语法正确。最后,生成相关问题,需要围绕Redis集群命令的深入使用、故障排查、性能优化等方面提问,帮助用户进一步学习。比如如何检测集群状态,故障转移的机制,或者数据迁移时的最佳实践。</think>### Redis集群常见命令操作指南 #### 一、集群状态查看 1. **查看集群基本信息** ```bash redis-cli -c CLUSTER INFO ``` 输出包含集群状态、槽分配完整性、节点数量等关键信息[^1]。 2. **列出所有节点信息** ```bash redis-cli -c CLUSTER NODES ``` 显示节点ID、角色(主/从)、槽分配、连接状态等[^3]。 --- #### 二、节点管理 1. **添加新节点到集群** ```bash CLUSTER MEET <新节点IP> <端口> ``` 添加后需手动分配槽(见下文**槽操作**部分)[^3]。 2. **移除节点** ```bash CLUSTER FORGET <节点ID> ``` 需先在其他节点执行该命令才能完全移除。 --- #### 三、槽(Slot)操作 1. **分配槽给节点** ```bash CLUSTER ADDSLOTS <起始槽> <结束槽> ``` 例如:`CLUSTER ADDSLOTS 0 100` 分配槽0-100。 2. **查看槽分布** ```bash redis-cli -c CLUSTER SLOTS ``` 输出槽范围与对应主节点映射关系[^1]。 3. **重新分片(扩容场景)** 使用内置工具: ```bash redis-cli --cluster reshard <任意节点IP:端口> ``` 按交互提示输入迁移槽数量、目标节点ID等参数[^4]。 --- #### 四、故障处理 1. **手动触发故障转移** ```bash redis-cli -c CLUSTER FAILOVER [FORCE|TAKEOVER] ``` - `FORCE`: 强制从节点立即接管 - `TAKEOVER`: 绕过一致性验证(慎用)[^2] 2. **检查集群健康状态** ```bash redis-cli --cluster check <节点IP:端口> ``` 检测槽覆盖完整性、主从复制状态[^4]。 --- #### 五、数据迁移示例 ```bash # 将槽5000从节点A迁移到节点B CLUSTER SETSLOT 5000 IMPORTING <节点B-ID> CLUSTER SETSLOT 5000 MIGRATING <节点A-ID> # 使用MIGRATE命令逐个迁移键 MIGRATE <节点B-IP> <端口> "" 0 5000 KEYS * ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱写代码的马良

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值