《玩转Redis》系列文章主要讲述Redis的基础及中高级应用,文章基于Redis5.0.4+。Redis的连接往往是由程序完成,多数程序员并不关心,但掌握连接命令能提升自己的综合水平,真正了解整个Redis的使用过程。
1、连接命令概述

2、各命令详解
2.1、AUTH认证命令
2.1.1、AUTH命令功能
AUTH命令用于密码验证,Redis的密码明文配置在配置文件redis.conf(requirepass yourRedisPassword)中; 由于Redis高性能,建议使用复杂密码避免被爆破; 建议修改默认端口6379,避免被爆破;
# 查询密码
config get requirepass
# 在线设置密码
config set requirepass abcdefg
# (生产环境应屏蔽config命令)
# rename-command CONFIG ""
复制
2.1.2、示例
# 无密码连接
[guest@xxx redis]$ ./redis-cli -h 127.0.0.1 -p 6378
# 输入密码验证
127.0.0.1:6378> AUTH 123456
(error) ERR invalid password
127.0.0.1:6378> auth pwd123456
OK
复制
2.2、ECHO命令
ECHO命令将返回参数本身,常用于脚本中; 脚本中的ECHO支持引入变量;
PIDFILE=/var/run/redis_${REDISPORT}.pid
echo "$PIDFILE is 123"
复制
2.3、PING命令
测试Redis建立的连接是否可用(连接存在被其他线程关闭的情况); 测试连接的延迟; PING不带参数将返回"PONG",带参数将返回参数本身; 如果订阅了channel或pattern,PING第一次返回"PONG",后续返回空字符串。
127.0.0.1:6378> ping
PONG
127.0.0.1:6378> ping "hi @zxiaofan"
"hi @zxiaofan"
复制
2.4、QUIT命令
用于关闭连接,成功返回"OK"; 由于Redis是单线程,故当有命令正在执行操作时,连接时无法被关闭的;
2.5、SELECT命令
用于选择Redis数据库; Redis共有16个DB,DB索引从0开始,新连接总是使用DB0; 不同的DB可以有相同名字的key; 需要指定DB的命令:FLUSHDB、SWAPDB、RANDOMKEY; DB主要用于拆分属于相同应用的不同key; Redis Cluster只能使用DB0,不能使用SELECT命令; index范围超出[0,15]时,将提示(error) ERR DB index is out of range;
注意:
Redis没有提供命令查询当前连接所选择的DB,命令CLIENT LIST可展示所有连接选择的DB(db=0);
Redis如何查看当前连接操作的DB:
控制台查看:
127.0.0.1:6378> select 1
OK
# 注意在6378后有个“[1]”,这个就表示当前连接操作的DB;
127.0.0.1:6378[1]> select 0
OK
127.0.0.1:6378>
复制
三方API(如lettuce、jedis)
# lettuce 中查看DB的API:
/**
* Returns the Redis database number. Databases are only available for Redis Standalone and Redis Master/Slave.
*
* @return
*/
public int getDatabase() {
return database;
}
复制
2.6、SWAPDB命令
2.6.1、SWAPDB命令功能及示例
用于交换2个Redis的DB中的数据,交换成功返回"OK"; 交换DB中的数据,并不是直接切换连接; SWAPDB 0 1后,先前访问DB0的连接能立即访问以前DB1中的数据,但实际上连接依旧是DB0; index范围超出[0,15]时,将提示(error) ERR DB index is out of range; 如果发现Redis中始终没有预期数据,可以先确认DB是否正确;
127.0.0.1:6378> set db0 db0value
OK
127.0.0.1:6378> select 1
OK
127.0.0.1:6378[1]> set db1 db1value
OK
127.0.0.1:6378[1]> get db0
(nil)
127.0.0.1:6378[1]> swapdb 0 1
OK
127.0.0.1:6378[1]> get db0
"db0value"
127.0.0.1:6378[1]> swapdb 0 16
(error) ERR DB index is out of range
复制
2.6.2、SWAPDB命令应用场景
修正线上Redis数据:如果线上Redis数据有问题又不能直接处理,可以考虑在新DB中构造正确数据,最后直接切换2个DB的数据(数据量较大慎用);
3、Redis连接命令总结
除了SWAPDB命令是4.0.0版本可用,其他命令均是1.0.0版本可用; 除PING、ECHO命令外,其他命令执行成功均返回"OK"; Redis的连接命令在开发中使用较少,但学习了解有备无患;
人生就像一只储蓄罐,你投入的每一分努力都会在未来的某一天,回馈于你。
学习,思考;
沉淀,成长。
文章转载自zxiaofan,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Redis 8.0:开启一体化多功能开源数据平台新时代
老王两点中
118次阅读
2025-05-12 09:00:43
Redis 挂 AGPLv3 “战袍”,开源江湖风云突变
青年数据库学习互助会
73次阅读
2025-05-08 10:04:49
Redis改协议内幕曝光!核心开发者亲述被“踢出局”,外部贡献者几乎全跑光了!
老鱼笔记
48次阅读
2025-04-17 10:41:56
Redis数据库——Cluster集群模式
编程Cookbook
47次阅读
2025-04-16 15:34:44
亚马逊:MemoryDB,一款内存优先的云数据库
数据库应用创新实验室
33次阅读
2025-04-18 09:54:15
redis初识
chirpyli
31次阅读
2025-05-07 17:32:31
优雅遍历和删除特定开头的key
陌殇流苏
27次阅读
2025-04-25 12:17:03
Redis数据库——内存分配器
编程Cookbook
19次阅读
2025-04-14 12:59:10
Redis数据库——持久化机制
编程Cookbook
15次阅读
2025-04-15 11:32:38
Redis内存溢出故障排查
IT那活儿
13次阅读
2025-04-25 10:10:09