【Redis】Redis安装配置以及常见问题
Redis安装配置以及常见问题
前言:之前在Centos8上安装了Redis,今天尝试在Windows操作系统里使用Java连接并操作Redis,没想到遇到了许多问题,参考了各位大神的博客后终于连接成功了^_^
小小总结了下这个过程(为了尊重原博主也会贴上参考链接),希望对大家有所帮助。
该篇主要分为3个部分讲述本人刚刚接触Redis时所经历的事情和遇到的困难,主要内容包括安装、配置、远程连接:
1.Redis的安装。
2.在Windows下远程连接Linux中的Redis服务(redis-server)。
3.Java连接Linux操作系统上的Redis。
一、Redis的安装
参考: 参考:1. 安装包下载
方法1:手动去官网https://redis.io/ 下载:tar.gz文件 方法2:直接使用如下命令下载(记得修改redis版本,这里使用6.06)(Linux下推荐直接使用命令哦~) wget http://download.redis.io/releases/redis-6.06.tar.gz 如果由于某种原因(比如Redis官网无法访问)无法下载也可以直接使用我之前已经下载好的安装包,然后传入到Linux环境(需要在Linux环境安装工具:yum -y install lrzsz,已支持的请忽略) (该博客无法上传附件,所以提供了永久有效的百度网盘链接,失效可以评论联系我,随时更新网盘分享链接)链接:https://pan.baidu.com/s/1dt5g1y3ztWunhDufhDIo4w 提取码:re0q
2. 解压安装
Step1:从~目录把安装包放入data文件夹里(可以选自己喜欢的文件夹)[root@localhost ~]# mv redis-6.06.tar.gz /data
Step2:进入/data并解压redis-6.06.tar.gz安装包
[root@localhost ~]# cd /data
[root@localhost data]# tar -xzvf redis-6.06.tar.gz
Step3:进入解压文件并编译安装
进入redis-6.06目录:
[root@localhost data]# cd redis-6.06/
编译:
[root@localhost redis-6.0.6]# make
编译结束后会自动生成src目录的。进入src目录:
[root@localhost redis-6.0.6]# cd src/
安装:
[root@localhost src]# make install
3. 基础环境配置(其实就是让redis-server和redis-cli命令随便在哪个目录都可以执行)
创建Redis的etc文件:
[root@localhost ~]# mkdir /usr/local/redis/etc
进入redis的解压目录
[root@localhost ~]# cd /data/redis-6.06
将解压目录中redis.conf移动到前面创建的目录/usr/local/redis/etc中
[root@localhost ~]# mv redis.conf /usr/local/redis/etc
配置redis.conf文件,后台启动
[root@localhost ~]# vi /usr/local/redis/etc/redis.conf
然后修改上述文件,将daemonize no 改成daemonize yes
将redis加入到开机启动
[root@localhost ~]# vi /etc/rc.local
在里面添加内容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
(最重要)将redis-cli,redis-server拷贝到环境变量中,让这两个可以随时调用
[root@localhost ~]# cp /usr/local/redis/bin/redis-server /usr/local/bin/ cp /usr/local/redis/bin/redis-cli /usr/local/bin/
4.检查Redis是否安装并且配置成功
在利用XShell或者其他工具(这里使用Xshell作为例子)
新建1个连接,任意Linux目录输入redis-server(启动redis服务器)
[root@localhost ~]# redis-server
重新开启一个窗口使用客户端连接。输入redis-cli(使用redis客户端连接redis服务器),出现连接后输入ping,如果返回pong则表示连接成功。
[root@localhost ~]# redis-cli
二、在Windows下远程连接Linux中的Redis服务(redis-server)
这里主要使用cmd命令窗口中的telnet命令查看是否连接成功。
我的Linux服务器(虚拟机上)的ip地址为192.168.204.128(可以在Linux的终端使用ifconfig查看),Linux操作系统上Redis服务端口为6379(使用ps -ef | grep redis*查看)
所以在cmd窗口输入
telnet 192.168.204.128 6379
出现6379连接失败,我还以为我用错命令或者写错IP了呢,结果查询后发现,是Redis的相关配置存在问题。经过各种问题查询,最后连接成功~开心~
问题1:Linux防火墙
参考:
在Linux清空防火墙的规则并关闭防火墙
[root@localhost ~]# iptables -F
[root@localhost ~]# service iptables stop
重新在windows操作系统的cmd窗口输入命令telnet 192.168.204.128 6379,发现还是不能连接,好生气,于是我又去找,发现了问题2
问题2:redis.conf配置
参考:https://jingyan.baidu.com/article/546ae185d7b3911149f28cc3.html
Step1:修改redis.conf,找到bind 127.0.0.1将其修改为bind 0.0.0.0(这里使用vi编辑文本,如果vi还没有接触,可以使用nano /usr/local/redis/etc/redis.conf来编辑文本)
[root@localhost ~]# find / -name redis.conf
/usr/local/redis/etc/redis.conf
[root@localhost ~]# vi /usr/local/redis/etc/redis.conf
Step2:重启redis-server
[root@localhost ~]# redis-server
然后我又跑去Windows下的cmd窗口输入命令telnet 192.168.204.128 6379,哇塞,连接上了,不过怎么报了不一样的错误
经过一番查询,发现是redis的密码没有设置,为了安全性,所以必须要设置密码。
问题3:redis未设置密码
参考:所以这里给redis服务器添加密码(这里是临时性添加密码,永久性添加密码可以参考原博主的文章哦)
[root@localhost ~]# redis-cli
127.0.0.1:6379> config set requirepass
OK
然后第3次跑去Windows下的cmd窗口输入命令telnet 192.168.204.128 6379。呼~终于连接上了,使用ping也能得到PONG了(还是和在Linux上校验是否启动Redis-server方式一样)
三、Java连接Linux操作系统上的Redis
Step1:新建一个Maven工程。
Step2:在Pom.xml中添加配置
redis.clients jedis 2.9.0
Step3:新建Main函数,利用Jedis连接Redis服务器。
一开始我对使用Jedis构造方法中的IP和port一直不理解需要填写什么,所以在这里也额外啰嗦一句:
IP = Linux服务器IP
PORT = Redis服务器所在端口
和前面的telnet是一样的
package Demo_Redis; import redis.clients.jedis.*; public class Main { public static void main(String args[]){ Jedis jedis = new Jedis("192.168.204.128",6379);//连接 jedis.auth("123456");//密码认证 System.out.println(jedis.ping());//使用ping()和Redis打招呼 } }
Step4:运行程序。和Windows的telnet命令一样,得到了PONG