操作系统 | CentOS-7-x86_64-Minimal-2009 |
Redis | redis-6.2.6.tar.gz |
-
安装并运行
# Step1. 安装gcc编译器,在Step5用到
yum install gcc -y
# Step2. 下载压缩包
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
# Step3. 解压
tar -zxvf redis-6.2.6.tar.gz
# Step4. 把解压出来的目录移到/usr/local/redis6
mv redis-6.2.6.tar /usr/local/redis6
# Step5. 进入目录/usr/local/redis6,开始编译
make
# Step6. 如果Step5编译成功,将在当前目录出现,添加“--daemonize yes”后台运行
./src/redis-server --daemonize yes
# Step7. 查看线程状态
ps -ef|grep redis
# Step8. 使用redis-cli尝试操作
./src/redis-cli
-
注册服务自启动
# Step9. 在目录/lib/systemd/system下创建redis.service,内容如下:
[Unit]
Description=redis
After=network.target
[Service]
Type=forking
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
ExecStart=/usr/local/redis6/src/redis-server /usr/local/redis6/redis.conf --daemonize
ExecStop=/usr/local/redis6/src/redis-cli -p 6379 shutdown
PrivateTmp=false
[Install]
WantedBy=multi-user.target
# Step10. 重新加载
systemctl daemon-reload
# Step11. 允许redis.service自启动
systemctl enable redis.service
# Step12. 重启
reboot
# Step13. 重启后,查看redis服务状态
systemctl status redis.service
-
设置外网访问
同样也是需要打开防火墙端口,另外还需要修改redis.conf配置,默认只允许本机访问。
# Step14. 更新防火墙,开放6379端口
firewall-cmd --add-port=6379/tcp --permanent
# Step15. 查看6379端口开放情况
firewall-cmd --query-port=6379/tcp
# Step16. 修改/usr/local/redis6/redis.conf配置
bind 127.0.0.1 -> bind 192.168.12.129
protected-mode yes -> protected-mode no
# Step17. 重启服务后,尝试连接
systemctl start redis.service
数据持久化
redis将数据放到内存中,默认情况下是不持久化的,意味着如果断电或重启,数据将丢失。为将数据持久化,redis提供了两套方案:RDB和AOF,两种持久化机制的比较可以看这篇文章《详解Redis中两种持久化机制RDB和AOF》。默认只需要配置一种。
# Step18. RDB配置
# 修改redis.conf中“SNAPSHOTTING”的配置
# 比如下面配置的意思是每过3600s或有一个key被修改就备份一次
save 3600 1
# Step19. AOF配置
# 修改redis.conf中“APPEND ONLY MODE”的配置
# 有三种取值always/everysec/no
appendonly everysec
有一个有趣的地方,如果RDB和AOF两种机制的配置都enable的话,会发生什么呢?博主没有亲自试过,按照文章《黑猴子的家:Redis 持久化 之 AOF 和 RDB 同时开启,Redis听谁的?》的说法,两种持久化方式都会生效,但恢复时默认使用AOF的备份文件。
遇到的问题
如果在没有安装gcc的情况下运行了make,可能会出现这种提示:
jemalloc/jemalloc.h: No such file or directory。
安装gcc后,可以执行如下命令进行重新编译。
make distclean && make
引用文献:
《黑猴子的家:Redis 持久化 之 AOF 和 RDB 同时开启,Redis听谁的?》
《redis 安装报错 jemalloc/jemalloc.h: No such file or directory》
以上就是本文的全部内容。