阿里云服务上面部署redis + 本地Redis客户端连接方法 + 配置redis开机自启动

 本文结合自己在阿里云服务器上面搭建redis服务器,在本地redis的客户端Redis Desktop Manager连接成功的操作,将操作中的一些方法做了一些归纳和总结,希望可以帮到有需要的同学。

一、在阿里云服务器上面安装redis:

进入local目录将redis安装在此文件夹目录下:cd /usr/local

wget http://download.redis.io/releases/redis-4.0.9.tar.gz (最好安装5.0.9版本,命令都相同)

tar xzf redis-4.0.9.tar.gz  //解压

cd redis-4.0.9

make     //编译

其中redis-server是用来启动服务用的,redis-cli是用来启动客户端用的

启动服务端:cd src    ./redis-server 出现redis图形界面表示安装成功 crtl+c 会退出redis 

 ./redis-server ../redis.conf & 表示后台守护进程启并指定读取的redis配置文件

 nohup ./redis-server ../redis.conf &  表示后台守护进程启并指定读取的redis配置文件,并且忽略日志输出到nohup.out

 

启动客户端:./redis-cli

二、阿里云服务器上面添加安全规则

在安全组规则中添加6379 redis端口,不然无法访问

三、设置redis客户端连接密码

进入redis :

[root@iZ254lfyd6nZ src]# ./redis-cli //进入redis

127.0.0.1:6379> get name //获取
"tanglei1234"
127.0.0.1:6379> config get requirepass //查询密码
1) "requirepass"
2) ""
127.0.0.1:6379> 设置密码输入auth +空格+ 设置的密码
(密码最好勿以特殊符号开头)

OK
注:如果出现(error) ERR Client sent AUTH, but no password is set 需要先执行
config set requirepass +密码 再执行auth +密码

127.0.0.1:6379> config get requirepass //设置完密码需要使用密码登录
(error) NOAUTH Authentication required.

注意:阿里云上部署的redis需要设置密码,这样本地redis的客户端Redis Desktop Manager才可以连上,添加的时候要填写密码。
解决(error) NOAUTH Authentication required.方法如下:
(1)查看redis.conf文件:vim redis.conf,打开配置文件后,输入/#requirepass foobared(快速查找)

加上 requirepass + 你的密码(如图所示)


注:修改完配置文件必须重启redis服务:可以先找到进程PID kill掉,再重新执行 ./redis-server ../redis.conf &

(2)修改配置文件:bind 127.0.0.1 注释掉 (表示允许远程连接,不只是在本地连接)

(3)使用密码连接,命令:./redis-cli -h 127.0.0.1 -p 6379 -a 密码

(4)此时就没有再提示:(error) NOAUTH Authentication required.

(5)本地redis工具连接

 (6)如果服务器安全组已经开放6379,还是无法远程连接,请检查防火墙状态:

         service iptables status 如果开启执行 service iptables stop

    systemctl status firewalld.service 如果开启执行 systemctl disable firewalld.service

        参考地址:https://blog.csdn.net/nings666/article/details/130302844

 

四、设置服务

 4.1、环境说明

  • 操作系统:CentOS Linux release 7.6.1810 (Core)

  • Redis 版本:5.0.9(源码安装,路径 /usr/local/redis-5.0.9

  • 可执行文件:/usr/local/redis-5.0.9/src/redis-server

  • 配置文件:/usr/local/redis-5.0.9/redis.conf

  • 旧版 Redis 残留:之前安装过 Redis 4.0,已删除但 systemd 服务可能未清理干净

4.2、创建正确的 systemd 服务文件

使用 root 权限创建 /etc/systemd/system/redis.service

image

 

[Unit]
Description=Redis persistent key-value database
After=network.target

[Service]
ExecStart=/usr/local/redis-5.0.9/src/redis-server /usr/local/redis-5.0.9/redis.conf
ExecStop=/usr/local/redis-5.0.9/src/redis-cli shutdown
Restart=always
Type=simple
WorkingDirectory=/usr/local/redis-5.0.9
LimitNOFILE=65536
PrivateTmp=true
# 关键:允许写入的数据目录
ReadWriteDirectories=-/var/lib/redis

[Install]
WantedBy=multi-user.target

4.3、修改 Redis 配置文件,使用绝对路径的数据目录

vim /usr/local/redis-5.0.9/redis.conf

# 必须为 no,让 Redis 在前台运行,由 systemd 管理
daemonize no

# 将数据目录改为 /var/lib/redis(绝对路径!)
dir /var/lib/redis

 4.4、移动现有 RDB 文件到新目录(没旧数据就忽略)

 

# 创建数据目录
sudo mkdir -p /var/lib/redis

# 假设正确的数据文件在 /dump.rdb(根据你的 find 结果确定)
sudo mv /dump.rdb /var/lib/redis/

# 如果还有其他位置的 dump.rdb,也检查一下是否包含有效数据,但只保留一个
# 可使用 redis-check-rdb 验证文件完整性
/usr/local/redis-5.0.9/src/redis-check-rdb /var/lib/redis/dump.rdb

 

4.5、重新加载 systemd 并启动 Redis

sudo systemctl daemon-reload
sudo systemctl start redis
sudo systemctl status redis   (# 按 q 退出日志跟踪)

设置开机自启:sudo systemctl enable redis 

观察日志:sudo journalctl -u redis -n 50 --no-pager

重启服务器:reboot

 

posted @ 2018-11-22 14:42  FkLee  阅读(4336)  评论(0)    收藏  举报