Redis 常用命令

本文详细介绍了在Windows上启动和关闭Redis的两种方法,包括通过命令行直接启动和作为服务安装。同时,讲解了如何使用redis-cli客户端进行交互操作,如查看键值、设置密码等。此外,还提供了修改Redis密码的两种方式,一种是修改配置文件,另一种是通过命令行即时修改。最后,提到了连接远程Redis服务器的命令行语法。

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

1. 下载

推荐参考:redis最新版下载安装教程

1.1.启动redis方式1:

在redis目录下打开命令行输入redis-serverredis-server service.windows.conf启动redis,关闭命令行即关闭了redis

1.2.启动redis方式2:

  • 安装服务:redis-server --service-install(安装服务后可以使用start和stop命令)
  • 启动redis服务:redis-server --service-start(不手动停止不会终止redis)
  • 停止redis服务:redis-server --service-stop
  • 删除服务:redis-server --service-uninstall(关闭服务)
注:如果再删除后重新安装出现“指定的服务已标记为删除”错误时,打开任务管理器,找到redis服务关闭任务即可重新安装。

2.1.打开redis客户端:

启动了redis服务后,即可打开redis客户端,如下命令:
redis-cli

  • keys * 查看redis中所有键
  • set key value 设置键key的值为value
  • get key 获取键为"key"的值
  • auth [密码] 在进入redis客户端后通过auth输入密码
  • config get requirepass 查看密码
  • exit 退出

redis-cli --help 查看相关指令
redis-cli --version 查看版本
2.2.Redis-cli客户端连接远程Redis服务器

语法:redis-cli -h 192.168.20.33 -p 6379
用法:redis-cli [OPTIONS] [cmd [arg [arg ...]]]
-h <主机ip>,默认是127.0.0.1
-p <端口>,默认是6379
-a <密码>,如果redis加锁,需要传递密码
–help,显示帮助信息

3.1.修改密码方式1(需要重启redis,永久有效密码)
注:修改配置文件密码永久有效
编辑redis里面的配置文件redis.windows.conf。把被注释的# requirepass foobared修改为requirepass 123456,即密码为123456

3.1.修改密码方式2(不需要重启redis,重启redis失效)
注:命令行修改密码是临时密码,重启redis后密码失效
通过命令行去修改密码,输入命令config set requirepass 123456设置密码为123456,然后重新登录redis客户端。有两种方式

方式1:先登录客户端redis-cli,进入之后输入auth 123456即可。
方式2:在登录的时候通过-a输入密码redis-cli -a 123456,这种方式会提醒你不安全,因此是不被推荐的

2. redis常用命令

1.1 字符串(String)

字符串是 Redis 最基本的数据类型,可以存储任何形式的字符串,包括文本、数字和二进制数据。

常用命令:

  • SET key value:设置指定键的值。
  • GET key:获取指定键的值。
  • DEL key:删除指定的键及其值。
  • APPEND key value:将指定的值追加到原有值的末尾。
  • STRLEN key:获取指定键的字符串值的长度。
  • MSET key1 value1 key2 value2 ... keyN valueN:同时设置多个键的值。
  • MGET key1 key2 ... keyN:获取多个键的值。
  • SETNX key value:当且仅当键不存在时,设置键的值。
  • SETEX key seconds value:设置键的值,并为其指定过期时间(以秒为单位)。
  • INCR key:将指定键的值递增 1。
  • DECR key:将指定键的值递减 1。
  • INCRBY key increment:将指定键的值加指定的整数。
  • DECRBY key decrement:将指定键的值减少指定的整数。
  • GETRANGE key start end:获取指定键的字符串值的子串。
  • SETRANGE key offset value:对指定键的字符串值进行子串替换。

1.2 列表(List)

列表是一个有序的字符串列表,可以按照插入顺序向列表的头部或尾部添加元素。

常用命令:

  • LPUSH key value1 [value2 ...]:将一个或多个值插入到列表的头部。
  • RPUSH key value1 [value2 ...]:将一个或多个值插入到列表的尾部。
  • LPOP key:移除并返回列表的第一个元素。
  • RPOP key:移除并返回列表的最后一个元素。
  • LRANGE key start stop:获取列表在指定范围内的元素,例:LRANGE key 0 10
  • LLEN key:获取列表的长度。
  • LINDEX key index:通过索引获取列表中的元素。
  • LSET key index value:通过索引设置列表元素的值。
  • LTRIM key start stop:修剪列表,只保留指定范围内的元素。
  • RPOPLPUSH source destination:移除列表的最后一个元素,并将其添加到另一个列表的头部。
  • BLPOP key [key ...] timeout:阻塞式左弹出,如果列表为空,则阻塞直到有元素可弹出或超时。
  • BRPOP key [key ...] timeout:阻塞式右弹出,如果列表为空,则阻塞直到有元素可弹出或超时。

2.3 哈希(Hash)

哈希是一个键值对集合,可以存储多个字段和值,每个字段和值都是字符串类型。

常用命令:

  • HSET key field value:设置哈希表中字段的值。
  • HGET key field:获取哈希表中字段的值。
  • HDEL key field [field ...]:删除哈希表中的一个或多个字段。
  • HEXISTS key field:判断哈希表中指定字段是否存在。
  • HGETALL key:获取哈希表中所有的字段和值。
  • HKEYS key:获取哈希表中所有的字段名。
  • HVALS key:获取哈希表中所有的字段值。
  • HLEN key:获取哈希表中字段的数量。
  • HMSET key field1 value1 field2 value2 ...:同时设置哈希表中的多个字段值。
  • HMGET key field1 field2 ...:同时获取哈希表中的多个字段值。
  • HINCRBY key field increment:将哈希表中指定字段的值增加指定的整数。
  • HINCRBYFLOAT key field increment:将哈希表中指定字段的值增加指定的浮点数。
  • HSETNX key field value:当且仅当字段不存在时,设置哈希表中的字段值。

2.4 集合(Set)

集合是一个无序的字符串集合,自动去重,可以添加、删除和查询元素。

常用命令:

  • SADD key member1 [member2 ...]:向集合添加一个或多个成员。
  • SMEMBERS key:获取集合中的所有成员。
  • SISMEMBER key member:判断成员是否在集合中。
  • SCARD key:获取集合的成员数量。
  • SREM key member1 [member2 ...]:移除集合中的一个或多个成员。
  • SRANDMEMBER key [count]:随机返回集合中的一个或多个成员(不修改原集合)。
  • SPOP key:随机移除并返回集合中的一个成员。
  • SMOVE source destination member:将成员从一个集合移动到另一个集合。
  • SDIFF key1 [key2 ...]:返回所有给定集合的差集。
  • SINTER key1 [key2 ...]:返回所有给定集合的交集。
  • SUNION key1 [key2 ...]:返回所有给定集合的并集。

2.5 有序集合(Sorted Set,也称为 Zset)

有序集合与集合类似,但每个成员都会关联一个分数,成员会按照分数进行排序。

常用命令:

  • ZADD key score1 member1 [score2 member2 ...]:向有序集合添加一个或多个成员,或者更新现有成员的分数。
  • ZRANGE key start stop [WITHSCORES]:根据元素在有序集合中的位置,从低到高获取指定范围的元素及其分数。
  • ZREVRANGE key start stop [WITHSCORES]:根据元素在有序集合中的位置,从高到低获取指定范围的元素及其分数。
  • ZSCORE key member:获取有序集合中指定成员的分数。
  • ZRANK key member:获取有序集合中指定成员的排名(按分数从低到高排序)。
  • ZREVRANK key member:获取有序集合中指定成员的排名(按分数从高到低排序)。
  • ZREM key member1 [member2 ...]:移除有序集合中的一个或多个成员。
  • ZCARD key:获取有序集合的成员数量。
  • ZCOUNT key min max:计算在有序集合中指定分数范围内的成员数量。
  • ZINCRBY key increment member:将有序集合中指定成员的分数增加指定的增量。
<think>嗯,用户想了解Redis重启的相关内容。首先,我需要确定用户可能的需求。重启Redis通常是因为配置更改、故障恢复或者维护需要。用户可能遇到了问题,需要重启服务,或者只是提前了解步骤以备不时之需。 接下来,我应该分步骤介绍如何正确重启Redis。考虑到用户可能在不同环境下操作,比如Linux系统,使用systemctl或者直接通过命令行。需要详细说明每个步骤,避免遗漏关键点,比如保存数据、关闭启动服务的命令。 还要注意数据持久化的问题。如果Redis没有正确配置持久化,重启可能导致数据丢失,这一点必须提醒用户。需要提到SAVE或BGSAVE命令,以及配置文件中的选项,比如appendonlysave参数。 另外,用户可能关心重启后的验证步骤,比如检查服务状态连接情况。这部分也不能少,确保用户知道如何确认Redis是否成功重启。 潜在的问题方面,比如长时间关闭导致客户端连接问题,或者配置错误导致服务无法启动,这些都需要提前预警,帮助用户避免常见陷阱。最后,安全重启的建议,比如在低峰期操作,备份数据,都是用户可能需要的实用提示。 需要确保整个回答结构清晰,步骤明确,同时用中文口语化表达,避免技术术语过于晦涩。检查每个步骤的正确性,比如systemctl命令的正确顺序,配置文件的路径是否正确,这些细节都要准确无误。可能还需要区分不同情况,比如是否使用systemd,或者直接运行redis-server的情况,但大多数现代系统都用systemd,所以重点放在这上面。 还要注意用户可能的权限问题,比如执行命令是否需要sudo,这在步骤中要提示用户,避免他们遇到权限错误。同时,在数据持久化部分,要解释配置参数的作用,让用户理解为什么这些设置重要。 最后,总结安全重启的建议,帮助用户形成良好的操作习惯,减少数据丢失的风险。整个过程要保持逻辑连贯,覆盖用户可能需要的各个知识点,确保回答全面且有帮助。</think>Redis 重启操作指南及注意事项 (结构清晰版) 一、Redis重启的两种典型场景 1. 计划性重启 - 应用场景:配置修改、版本升级、服务器维护 - 特点:可预先通知客户端,选择业务低峰期操作 2. 故障性重启 - 应用场景:服务崩溃、内存溢出、数据异常 - 特点:需紧急处理,存在数据丢失风险 二、标准重启步骤(Linux系统示例) 1. 安全停止服务 ```bash # 使用systemctl停止(推荐) $ sudo systemctl stop redis # 或使用redis-cli停止 $ redis-cli shutdown ``` 2. 启动服务验证 ```bash $ sudo systemctl start redis $ systemctl status redis # 检查运行状态 $ redis-cli ping # 返回PONG表示正常 ``` 三、关键注意事项 1. 数据持久化保障 - 执行`SAVE`命令前强制落盘: ```bash $ redis-cli save # 同步保存(阻塞式) 或 $ redis-cli bgsave # 后台保存(非阻塞) ``` - 检查配置文件: ```conf appendonly yes # 启用AOF持久化 save 900 1 # RDB快照策略 ``` 2. 连接中断处理 - 客户端应实现重连机制(指数退避算法) - 监控`ERR Error: Connection reset by peer`错误 3. 配置变更生效 ```bash # 修改redis.conf后需重启生效 $ sudo systemctl restart redis ``` 四、故障排查清单 1. 启动失败常见原因: - 端口冲突(默认6379) - 权限问题(/var/lib/redis目录) - 内存超限(检查maxmemory配置) - 持久化文件损坏(修复RDB/AOF文件) 2. 日志分析命令: ```bash $ journalctl -u redis -n 100 -f # 实时追踪日志 ``` 五、生产环境最佳实践 1. 高可用方案: - 使用Redis Sentinel实现自动故障转移 - 部署Redis Cluster分片集群 2. 灰度重启策略: ```bash # 逐个节点重启(集群环境) $ redis-cli -h <node-ip> -p <port> shutdown nosave ``` 3. 性能指标监控: ```bash $ redis-cli info stats | grep uptime_in_seconds $ redis-cli info persistence # 持久化状态 ``` 六、进阶技巧 1. 热配置加载(无需重启): ```bash $ redis-cli config set maxmemory 4GB ``` 2. 内存碎片整理: ```bash $ redis-cli memory purge # 需要Redis 4.0+ ``` 建议在重启前执行`redis-cli info`获取当前状态快照,重启后对比关键指标(连接数、内存用量、持久化状态)。对于容器化部署环境,需特别注意持久化卷的挂载配置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值