Linux下安装Redis

下载并安装Redis

  • 地址
wget http://download.redis.io/releases/redis-4.0.6.tar.gz
复制代码
  • 进入Linux中
[root@localhost local]# mkdir redis
[root@localhost local]# cd redis/
[root@localhost redis]# pwd
/usr/local/redis
复制代码
  • 下载
[root@localhost redis]# wget http://download.redis.io/releases/redis-4.0.6.tar.gz
[root@localhost redis]# pwd
/usr/local/redis
[root@localhost redis]# ll
total 1684
-rw-r--r--. 1 root root 1723533 Jun 27  2020 redis-4.0.6.tar.gz
[root@localhost redis]# 
复制代码
  • 解压
[root@localhost redis]# tar -zxvf redis-4.0.6.tar.gz
[root@localhost redis]# ll
total 1688
drwxrwxr-x. 6 root root    4096 Dec  5  2017 redis-4.0.6
-rw-r--r--. 1 root root 1723533 Jun 27  2020 redis-4.0.6.tar.gz
复制代码
  • 安装gcc依赖
[root@localhost redis]# yum install gcc
复制代码
  • 编译redis
[root@localhost redis]# cd redis-4.0.6
[root@localhost redis-4.0.6]# make MALLOC=libc
复制代码
  • 将/usr/local/redis-4.0.6/src目录下的文件加到/usr/local/bin目录
[root@localhost redis-4.0.6]# cd src && make install
复制代码

后台进程方式启动Redis

[root@localhost redis-4.0.6]# vim redis.conf
复制代码

  • 修改redis.conf文件
daemonize no
复制代码

改为

daemonize yes
复制代码
  • 配置密码

# requirepass foobared
复制代码

改为

requirepass 123456
复制代码
  • 解除绑定

bind 127.0.0.1
复制代码

改为

# bind 127.0.0.1
复制代码
  • 指定redis.conf文件启动
[root@localhost src]# ./redis-server /usr/local/redis/redis-4.0.6/redis.conf
3190:C 23 Oct 11:55:04.899 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
3190:C 23 Oct 11:55:04.899 # Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=3190, just started
3190:C 23 Oct 11:55:04.899 # Configuration loaded
[root@localhost src]# 
复制代码
  • 关闭redis进程
[root@localhost src]# ps -ef | grep redis
root       3191      1  0 11:55 ?        00:00:00 ./redis-server 127.0.0.1:6379
root       3196   2264  0 11:55 pts/0    00:00:00 grep --color=auto redis
[root@localhost src]# kill -9 3191
复制代码

设置redis开机自启动

  • 在/etc目录下新建redis目录
[root@localhost src]# cd /etc/
[root@localhost etc]# mkdir redis
复制代码
  • 将/usr/local/redis/redis-4.0.6/redis.conf 文件复制一份到/etc/redis目录下,并命名为6379.conf
[root@localhost etc]# cp /usr/local/redis/redis-4.0.6/redis.conf /etc/redis/6379.conf
复制代码
  • 将redis的启动脚本复制一份放到/etc/init.d目录下
[root@localhost etc]# cp /usr/local/redis/redis-4.0.6/utils/redis_init_script /etc/init.d/redisd
复制代码
  • 设置redis开机自启动
[root@localhost etc]# cd /etc/init.d/
[root@localhost init.d]# chkconfig redisd on
service redisd does not support chkconfig
复制代码

看结果是redisd不支持chkconfig
解决方法:
使用vim编辑redisd文件,在第一行加入如下两行注释,保存退出。

# chkconfig:   2345 90 10
# description:  Redis is a persistent key-value database
复制代码
  • 再次执行开机自启命令,成功
[root@localhost init.d]# chkconfig redisd on
复制代码
  • 启动
[root@localhost init.d]# service redisd start
/var/run/redis_6379.pid exists, process is already running or crashed
复制代码

出现以上情况,执行一次如下命令即可解决

[root@localhost init.d]# redis-server /etc/redis/6379.conf
3293:C 23 Oct 12:05:59.906 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
3293:C 23 Oct 12:05:59.906 # Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=3293, just started
3293:C 23 Oct 12:05:59.906 # Configuration loaded
[root@localhost init.d]# ps -ef | grep redis
root       3294      1  0 12:05 ?        00:00:00 redis-server 127.0.0.1:6379
root       3299   2264  0 12:06 pts/0    00:00:00 grep --color=auto redis
复制代码
  • 停止
[root@localhost init.d]# service redisd stop
复制代码
  • 再次启动
[root@localhost init.d]# service redisd start
Starting Redis server...
3331:C 23 Oct 12:06:26.551 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
3331:C 23 Oct 12:06:26.551 # Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=3331, just started
3331:C 23 Oct 12:06:26.551 # Configuration loaded
[root@localhost init.d]# ps -ef | grep redis
root       3332      1  0 12:06 ?        00:00:00 /usr/local/bin/redis-server 127.0.0.1:6379
root       3337   2264  0 12:06 pts/0    00:00:00 grep --color=auto redis
复制代码

远程连接

  • 关闭防火墙
[root@localhost bin]# systemctl stop firewalld.service
复制代码

访问redis可以成功;

  • 开放 6379 端口
[root@localhost bin]# sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
success
[root@localhost bin]# sudo firewall-cmd --reload
success
复制代码

参考资料

https://www.cnblogs.com/zuidongfeng/p/8032505.html
复制代码