- 下载
http://redis.cn/download.html
2 . 解压安装
tar -zxvf redis-3.2.9.tar.gz # 解压缩
mv redis-3.2.9 /usr/local #移动文件到/usr/local
cd /usr/local/redis-3.2.9
yum install -y gcc #可能会缺少gcc依赖, 安装gcc
make # 如果报错可使用make MALLOC=libc #编译(在reis-3.2.9目录下执行)
- 修改配置文件
cd /usr/local/redis-3.2.9
vi redis.conf #编辑redis.conf 配置文件
必须修改的配置:
bind : 0.0.0.0 #允许任何ip访问
daemonize yes #允许后台运行,如果使用docker,请修改为no
- 启动
./redis-server /path/to/redis.conf # 启动并选择使用哪个配置文件
- 打开防火墙对应端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
- 使用以下任意方式查看redis 是否启动:
1. ps -ef | grep redis #查看redis进程是否启动
2. netstat -ntlp | grep 6379 #根据端口查看进程
3. 在redis_home/src 下执行 redis-cli -p 6379 访问redis
7.配置redis 为系统服务
vim /usr/lib/systemd/system/redis.service
在其中添加如下内容
[Unit]
Description=Redis
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid #根据实际修改
ExecStart=/usr/local/redis/src/redis-server /usr/local/redis/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
配置完成,重载系统服务:
systemctl daemon-reload
然后就可以使用一下命令启动redis了
systemctl start redis
或者
service start redis
redis其他配置详解:
port 6379 #redis 服务端口
tcp-backlog 1024 #TCP最大监听队列在高并发的环境下,你需要把这个值调高以避免客户端连接缓慢的问题,Linux 内核限制TCP连接最大监听队列为 /proc/sys/net/core/somaxconn 对应的值(默认128),所以,需要同时调整somaxconn
unixsocket /tmp/redis.sock #如果redis的Server 和client在同一台服务器,可以使用redis.sock通信替代TCP,速度提升非常大
unixsocketperm 755,指定文件权限
timeout 0 #client 空闲多少秒之后关闭连接, 0代表禁用,永不关闭
tcp-keepalive 0 #心跳检测时间,0表示禁用. 推荐60. server端每隔60秒检测一次client, 如果失败会关闭连接
loglevel notice #定义日志级别,共分四级,即debug、verbose、notice、warning。
logfile "" #定义日志文件的存储位置
syslog-enabled no #是否将日志输出到系统日志(syslog), syslog可自行百度linux syslog
syslog-ident redis #设置输出到系统日志时候的标志
databases 16 #设置数据库数量,默认16
#rdb 文件的持久化策略 :
# 900 秒内如果至少有 1 个 key 的值变化,则保存
# 300 秒内如果至少有 10 个 key 的值变化,则保存
# 60 秒内如果至少有 10000 个 key 的值变化,则保存
#全部注释则redis 数据不会持久化到rdb 文件
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes #当server保存失败时,停止接受写操作
rdbchecksum yes #保存rdb文件后是否使用进行数据校验(默认使用CRC64算法)
dbfilename dump.rdb # rdb文件的保存名称
dir ./ #rdb 文件保存路径
slaveof #主从同步配置, 配置该redis作为指定ip:port redis 的从库
masterauth #如果主库访问需要密码,配置在这里
slave-serve-stale-data yes #和主库失去连接时,是否接受客户端的访问请求
slave-read-only yes #从库是否设置为只读,默认只读
repl-ping-slave-period 10 #从库和主库的通信周期
repl-timeout 60 #主从通信超时时间,必须比repl-ping-slave-period大
repl-disable-tcp-nodelay no #主从同步时,是否禁用tcp_delay,no会消耗更多带宽,yes,同步会节省带宽,但是消耗更多时间
repl-backlog-size 1mb #同步队列大小, 同步类似mysql使用backlog同步, 每次同步只需同步增量的数据,
repl-backlog-ttl 3600 # 同步队列等待时间, 如果这么久之后还是连不上从库,就会删除同步队列
slave-priority 100 #设置从库优先级,主库宕机后,优先级最高的从库会升级为主库(越小越高, 0为永远不会成为主库)
#下列两个表示:如果有大于等于2个从redis 延迟超过10秒,那么主库就不再接受写请求(有一个设置为0就表示禁用此功能)
min-slaves-to-write 2
min-slaves-max-lag 10
requirepass admin #默认无密码,如果需要可设置连接密码
rename-command CONFIG wolfcode_shop_config #redis提供的安全防护功能,将一些危险的指令重命名,防止外部使用此指令执行非法操作,可能会带来一些问题
maxclients 10000 #最大客户端数量
maxmemory #redis最大占用内存数量,一旦到达内存使用上限,redis会按照maxmemory-policy策略来删除部分数据,可以使用此策略保留热门数据,淘汰不常用的数据
#内存移除规则:
volatile-lru:使用LRU算法移除过期集合中的key
allkeys-lru:使用LRU算法移除key
volatile-random:在过期集合中移除随机的key
allkeys-random:移除随机的key
volatile-ttl:移除那些TTL值最小的key,即那些最近才过期的key。
noeviction:不进行移除。针对写操作,只是返回错误信息。
#开启AOF模式, AOF模式也是一种持久化方式, 开启后会生成一个aof文件用来记录每一次操作,类似于mysql的重做日志. 而rdb 文件则是有用来记录所有数据. aof 和 rdb 两种持久化方式并不冲突,可以同时使用
#aof 三种持久化策略
#no:不即时同步,由操作系统控制何时刷写到磁盘上,这种模式速度最快;
#always:每次只写日志,速度较慢,但最安全;
#everysec:每秒钟同步一次,折中的方案。
appendonly no
appendfilename "appendonly.aof" #指定aof 文件的文件名
appendfsync everysec #aof 文件的持久化策略
cluster-enabled yes #启用,停用集群