操作系统 | 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中两种持久化机制RDB和AOF》
《黑猴子的家:Redis 持久化 之 AOF 和 RDB 同时开启,Redis听谁的?》
《redis 安装报错 jemalloc/jemalloc.h: No such file or directory》
以上就是本文的全部内容。