文章

Redis 安装使用

Redis安装

# 下载Redis源代码
wget https://download.redis.io/redis-stable.tar.gz

# 解压
tar -zxvf redis-stable.tar.gz

# 进入Redis目录
cd redis-stable

# 编译安装
make

# 修改配置文件为后台启动
sed -i "s/daemonize no/daemonize yes/g" redis.conf

# 指定配置文件启动
src/redis-server redis.conf

# 验证启动是否成功
ps -ef | grep redis

#  进入Redis客户端
src/redis-cli

# 退出Redis客户端
quit

# 停止Redis服务
pkill redis-server

启动Redis的时候可能会报下面的警告:

# WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.

# 这个警告的意思是Redis需要将系统的内核参数overcommit_memory设为开启状态,它表示内存分配策略,可选值有:
# 0:表示内核将检查是否有足够的内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则内存申请失败,并把错误返回给应用进程。
# 1:表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
# 2:表示内核允许分配超过所有物理内存和交换空间总和的内存

# 解决方案如下:
echo 'vm.overcommit_memory=1' >> /etc/sysctl.conf

#使修改立即生效(读取文件刷新配置)
sysctl -p

#查看修改是否生效
cat /proc/sys/vm/overcommit_memory

Redis使用

一般不用 keys *,耗时太长,推荐用 scan

Redis高级命令

# keys遍历所有键
keys *

# scan渐进式遍历键
# 遍历过程中键发生变化,有可能出现:新增的键没有遍历到,重复遍历了某些键
SCAN {cursor} MATCH {pattern} COUNT {count}
# cursor: hash桶的索引值(首次遍历cursor为0,把命令执行结果中返回的第一个整数值作为下一次遍历的cursor,一直遍历到cursor为0结束)
# pattern: key的正则表达式
# count: 一次遍历的key的数量(实际遍历结果不一定等于这个数量)

一些配置(redis.conf)

# redis支持的最大连接数
maxclients 10000

License:  CC BY 4.0