redis的一些命令

info

  • 简介:服务器的各种信息和统计数值
Server:有关redis服务器的常规信息

#运行模式,单机或者集群
redis_mode:standalone
#redis所使用的事件处理机制
multiplexing_api:epoll	
#redis服务器的随机标识符(用于sentinel和集群)
run_id:3abd26c33dfd059e87a0279defc4c96c13962ede
#配置文件路径
config_file:/usr/local/redis/conf/redis.conf

Clients:客户端连接部分
connected_clients:10#已连接客户端的数量(不包括通过slave连接的客户端)

Memory:内存消耗相关信息
used_memory:874152			#使用内存,以字节(byte)B为单位
used_memory_human:853.66K		#以人类可读的格式返回Redis分配的内存总量
used_memory_rss:2834432			#系统给redis分配的内存即常驻内存,和top、ps等命令的输出一致
used_memory_rss_human:2.70M		#以人类可读的格式返回系统redis分配的常驻内存top、ps等命令的输出一致
used_memory_peak:934040			#内存使用的峰值大小
used_memory_peak_human:912.15K
total_system_memory:1039048704		#操作系统的总内存,以字节(byte)为单位
total_system_memory_human:990.91M
used_memory_lua:37888			#lua引擎使用的内存
used_memory_lua_human:37.00K
maxmemory:0				#最大内存的配置值,0是不限制
maxmemory_human:0B
maxmemory_policy:noeviction		#达到最大内存配置值后的策略

Persistence:RDB和AOF相关信息
rdb_bgsave_in_progress:0		#标识rdbsave是否进行中
rdb_last_bgsave_status:ok		#上次的save操作状态
rdb_last_bgsave_status:ok		#上次的save操作状态
rdb_last_bgsave_time_sec:-1		#上次rdbsave操作使用的时间(单位s)
rdb_current_bgsave_time_sec:-1		#如果rdbsave操作正在进行,则是所使用的时间
aof_enabled:1				#是否开启aof,默认没开启
aof_rewrite_in_progress:0		#标识aof的rewrite操作是否在进行中
aof_last_rewrite_time_sec:-1		#上次rewrite操作使用的时间(单位s)
aof_current_rewrite_time_sec:-1		#如果rewrite操作正在进行,则记录所使用的时间
aof_last_bgrewrite_status:ok		#上次rewrite操作的状态
aof_current_size:0			#aof当前大小

Stats:一般统计
evicted_keys:0				#因为内存大小限制,而被驱逐出去的键的个数

Replication:主从同步信息
role:master				#⻆色
connected_slaves:1			#连接的从库数
master_sync_in_progress:0		#标识主redis正在同步到从redis

CPU:CPU消耗统计

Cluster:集群部分
cluster_enabled:0			#实例是否启用集群模式

Keyspace:数据库相关统计
db0:keys=4,expires=0,avg_ttl=0		#db0的key的数量,带有生存期的key的数,平均存活时间

config

  • 简介:可以动态地调整Redis服务器的配置(configuration)而无须重启
  • 常用配置
daemonize		#后端运行
bind			#ip绑定
timeout			#客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接
databases		#设置数据库的个数,可以使用SELECT命令来切换数据库。默认使用的数据库是0
save			#设置Redis进行rdb持久化数据库镜像的频率。rdbcompression#在进行镜像备份时,是否进行压缩
slaveof			#设置该数据库为其他数据库的从数据库masterauth#当主数据库连接需要密码验证时,在这里配置
maxclients		#限制同时连接的客户数量,当连接数超过这个值时,redis将不再接收其他连接请求,返回error
maxmemory		#设置redis能够使用的最大内存
  • 备注

    • 防止所用内存超过服务器物理内存,maxmemory限制的是Redis实际使用的内存量,也就是used_memory统计项对应的内存
    • 由于内存碎片率的存在,实际消耗的内存可能会比maxmemory设置的更大,实际使用时要小心这部分内存溢出
    • 默认无限使用服务器内存,为防止极端情况下导致系统内存耗尽,建议所有的Redis进程都要配置maxmemory
    • 在64bit系统下,maxmemory设置为0表示不限制Redis内存使用,在32bit系统下,maxmemory不能超过3GB
  • 注意⚠️

    • config配置的时候 下划线_的key需要用中横线-

      127.0.0.1:6379> config set maxmemory_policy volatile-lru
      (error) ERR Unsupported CONFIG parameter: maxmemory_policy
      127.0.0.1:6379> config set maxmemory-policy volatile-lru
      OK
      
    • redis在占用的内存超过指定的maxmemory之后,通过maxmemory_policy确定redis是否释放内存以及如何释放内存

  • 策略

    • volatile-lru(leastrecentlyused):最近最少使用算法,从设置了过期时间的键key中选择空转时间最长的键值对清除掉;

    • volatile-lfu(leastfrequentlyused):最近最不经常使用算法,从设置了过期时间的键中选择某段时间之内使用频次最小的键值对清除掉;

    • volatile-ttl:从设置了过期时间的键中选择过期时间最早的键值对清除;

    • volatile-random:从设置了过期时间的键中,随机选择键进行清除;

    • allkeys-lru:最近最少使用算法,从所有的键中选择空转时间最长的键值对清除;

    • allkeys-lfu:最近最不经常使用算法,从所有的键中选择某段时间之内使用频次最少的键值对清除;

    • allkeys-random:所有的键中,随机选择键进行删除;

    • noeviction:不做任何的清理工作,在redis的内存超过限制之后,所有的写入操作都会返回错误;但是读操作都能正常的进行;