ping
# 客户端和服务器连接正常
redis> PING
PONG
# 客户端和服务器连接不正常(网络不正常或服务器未能正常运行)
redis 127.0.0.1:6379> PING
Could not connect to Redis at 127.0.0.1:6379: Connection refused
echo
ECHO message
返回值:message自身
redis> ECHO "Hello Moto"
"Hello Moto"
redis> ECHO "Goodbye Moto"
"Goodbye Moto"
auth
AUTH password
redis> CONFIG SET requirepass secret_password # 将密码设置为secret_password
OK
redis> QUIT # 退出再连接,让新密码对客户端生效
[huangz@mypad]$ redis
redis> PING # 未验证密码,操作被拒绝
(error) ERR operation not permitted
redis> AUTH wrong_password_testing # 尝试输入错误的密码
(error) ERR invalid password
redis> AUTH secret_password # 输入正确的密码
OK
redis> PING # 密码验证成功,可以正常操作命令了
PONG
# 清空密码
redis> CONFIG SET requirepass "" # 通过将密码设为空字符来清空密码
OK
redis> QUIT
$ redis # 重新进入客户端
redis> PING # 执行命令不再需要密码,清空密码操作成功
PONG
-------------------------------------------------------------------------------------------------------
select
SELECT index
切换到指定的数据库,数据库索引号index用数字值指定,以0作为起始索引值【最大15】,默认使用0号数据库
redis> SELECT 1 # 使用1 号数据库
OK
redis[1]> GET db_number # 已经切换到1 号数据库,注意Redis 现在的命令提示符多了个
(nil)
redis[1]> SET db_number 1
OK
redis[1]> GET db_number
"1"
redis[1]> SELECT 3 # 再切换到3 号数据库
OK
redis[3]> # 提示符从[1] 改变成了[3]
DBSIZE
返回当前数据库的key的数量
redis> DBSIZE
(integer) 5
redis> SET new_key "hello_moto" # 增加一个key 试试
OK
redis> DBSIZE
(integer) 6
redis> SELECT 1 # 切换到其他库
OK
redis[1]> DBSIZE
(integer) 1
FLUSHALL
清空整个Redis服务器的数据(删除所有数据库的所有key )
redis> DBSIZE # 0 号数据库的key 数量
(integer) 9
redis> SELECT 1 # 切换到1 号数据库
OK
redis[1]> DBSIZE # 1 号数据库的key 数量
(integer) 6
redis[1]> flushall # 清空所有数据库的所有key
OK
redis[1]> DBSIZE # 1 号数据库被清空了
(integer) 0
redis[1]> SELECT 0 # 0 号数据库(以及其他所有数据库) 也一样
OK
redis> DBSIZE
(integer) 0
FLUSHDB
清空当前数据库中的所有key
redis> DBSIZE # 清空前的key 数量
(integer) 4
redis> FLUSHDB
OK
redis> DBSIZE # 清空后的key 数量
(integer) 0
-----------------------------------------------------------------------------------------------------
config get
CONFIG GET parameter
redis> CONFIG GET s*
1) "save" # 参数名:save
2) "900 1 300 10 60 10000" # save 参数的值
3) "slave-serve-stale-data" # 参数名:slave-serve-stale-data
4) "yes" # slave-serve-stale-data 参数的值
config set
CONFIG SET parameter value
redis> CONFIG SET slowlog-max-len 10086 #注意值是最小元值
OK
CONFIG REWRITE
保存当前的配置到配置文件中 【2.8以上版本支持】
config dump # sinaredis支持
CONFIG RESETSTAT
重置INFO命令中的某些统计数据,包括:
• Keyspace hits (键空间命中次数)
• Keyspace misses (键空间不命中次数)
• Number of commands processed (执行命令的次数)
• Number of connections received (连接服务器的次数)
• Number of expired keys (过期key的数量)
• Number of rejected connections (被拒绝的连接数量)
• Latest fork(2) time(最后执行fork(2) 的时间)
• Theaof_delayed_fsynccounter(aof_delayed_fsync计数器的值)
-----------------------------------------------------------------------------------------------------------------------------------------------
CLIENT LIST
以人类可读的格式,返回所有连接到服务器的客户端信息和统计数据
127.0.0.1:6379> CLIENT LIST
addr=127.0.0.1:55754 fd=7 name= age=6582 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
详细参数参考redis手册
CLIENT KILL ip:port
关闭地址为ip:port的客户端
redis-cli -h host -p port config set resetclients 1 #sinaredis
-------------------------------------------------------------------------------------------------------------------------------------------------
BGSAVE
在后台异步(Asynchronously)保存当前数据库的数据到磁盘。
BGSAVE命令执行之后立即返回OK,然后Redis fork出一个新子进程,原来的Redis进程(父进程) 继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。
客户端可以通过LASTSAVE命令查看相关信息,判断BGSAVE命令是否执行成功。
SAVE
SAVE命令执行一个同步保存操作,将当前Redis实例的所有数据快照(snapshot)以RDB文件的形式保存到硬盘。
一般来说,在生产环境很少执行SAVE操作,因为它会阻塞所有客户端,保存数据库的任务通常由BGSAVE命令异步地执行。然而,如果负责保存数据的后台子进程不幸出现问题时,SAVE可以作为保存数据的最后手段来使用。
配置文件:
Save分别表示 900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
SHUTDOWN
SHUTDOWN命令执行以下操作:
• 停止所有客户端
• 如果有至少一个保存点在等待,执行SAVE命令
• 如果AOF选项被打开,更新AOF文件
• 关闭redis服务器(server)
redis> shutdown save
--------------------------------------------------------------------------------------------------------------------------------------------------------
slaveof
SLAVEOF host port #设置主库,将清空当前数据
SLAVEOF NO ONE #提升为master,不会丢当前数据
SLOWLOG subcommand [argument]
1). SLOWLOG GET #查看所有slowlog
2). SLOWLOG GET N #从slowlog队列中读取命令信息,N表示最近N条命令的信息。
3). SLOWLOG LEN #获取slowlog队列的长度。
4). SLOWLOG RESET #清空slowlog中的内容
-------------------------------------------------------------------------------------------------------------------------------------------------------
info
INFO [section]
• server: 一般Redis服务器信息,包含以下域:
–redis_version: Redis 服务器版本
–redis_git_sha1: Git SHA1
–redis_git_dirty: Git dirty flag
–os: Redis 服务器的宿主操作系统
–arch_bits: 架构(32或64位)
–multiplexing_api: Redis 所使用的事件处理机制
–gcc_version: 编译Redis时所使用的GCC版本
–process_id: 服务器进程的PID
–run_id: Redis 服务器的随机标识符(用于Sentinel和集群)
–tcp_port: TCP/IP 监听端口
–uptime_in_seconds: 自Redis服务器启动以来,经过的秒数
–uptime_in_days: 自Redis服务器启动以来,经过的天数
–lru_clock: 以分钟为单位进行自增的时钟,用于LRU管理
• clients: 已连接客户端信息,包含以下域:
–connected_clients: 已连接客户端的数量(不包括通过从属服务器连接的客户端)
–client_longest_output_list: 当前连接的客户端当中,最长的输出列表
–client_longest_input_buf: 当前连接的客户端当中,最大输入缓存
–blocked_clients: 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数
• memory: 内存信息,包含以下域:
–used_memory: 由Redis分配器分配的内存总量,以字节(byte)为单位
–used_memory_human: 以人类可读的格式返回Redis分配的内存总量
–used_memory_rss: 从操作系统的角度,返回Redis已分配的内存总量(俗称常驻集大小)。这个值和top、ps等命令的输出一致
–used_memory_peak: Redis 的内存消耗峰值(以字节为单位)
–used_memory_peak_human: 以人类可读的格式返回Redis的内存消耗峰值
–used_memory_lua: Lua 引擎所使用的内存大小(以字节为单位)
–mem_fragmentation_ratio: used_memory_rss和used_memory之间的比率
–mem_allocator: 在编译时指定的,Redis所使用的内存分配器。可以是libc 、jemalloc或者tcmalloc 。
在理想情况下,used_memory_rss的值应该只比used_memory稍微高一点儿。
当rss > used,且两者的值相差较大时,表示存在(内部或外部的)内存碎片。内存碎片的比率可以通过mem_fragmentation_ratio的值看出。
当used > rss时,表示Redis的部分内存被操作系统换出到交换空间了,在这种情况下,操作可能会产生明显的延迟。
Because Redis does not have control over how its allocations are mapped to memory pages,
highused_memory_rssis often the result of a spike in memory usage.
当Redis释放内存时,分配器可能会,也可能不会,将内存返还给操作系统。如果Redis释放了内存,却没有将内存返还给操作系统,那么used_memory的值可
能和操作系统显示的Redis内存占用并不一致。
查看used_memory_peak的值可以验证这种情况是否发生
• persistence: RDB和AOF的相关信息
• stats: 一般统计信息
• replication: 主/从复制信息
• cpu: CPU 计算量统计信息
• commandstats: Redis 命令统计信息
• cluster: Redis 集群信息
• keyspace: 数据库相关的统计信息