以前公司在开发阶段连接的 redis 一直是正式环境中的,最近老大让我在搭建一个局域网内的 redis 用于开发阶段时连接使用,搭建过程中也遇到了一些问题,还好已经解决了,在这里记录一下。
首先是搭建 redis,这个比较简单。
1、检查安装依赖程序
- yum install gcc - c++yum install - y tcl yum install wget
2、获取安装文件
- wget http: //download.redis.io/releases/
- 这里面有很多版本,自己选择需要的下载
3、解压文件
自己新建一个目录将 redis 解压到里面
- tar - zxvf redis - 3.2.01.tar.gz mv redis - 3.2.01 / usr / local / redis
4、进入目录
- cd / usr / local / redis
5、编译安装
- make make install
6、设置配置文件路径
- mkdir - p / etc / redis cp redis.conf / etc / redis
7、修改配置文件
redis.conf 是 redis 的配置文件,redis.conf 在 redis 源码目录。
注意修改 port 作为 redis 进程的端口, port 默认 6379。如果需要搭建 redis 集群,千万别忘了修改端口号。
redis 有两种启动方式,直接运行 bin/redis-server 将以前端模式启动,前端模式启动的缺点是 ssh 命令窗口关闭则 redis-server 程序结束,不推荐使用此方法。如下图:
后端模式启动
修改 redis.conf 配置文件, daemonize yes 以后端模式启动。推荐!
打开 redis.conf, 使用命令 :/ daemonize 快速查找到 daemonize 然后修改。
- vi / etc / redis / redis.conf仅修改:daemonize yes(no-->yes)
8、启动
- /usr/local / bin / redis - server / etc / redis / redis.conf
9、查看启动
- ps - ef | grep redis
10、使用客户端
- redis - cli > set name david OK > get name "david"
11. 关闭客户端
- redis - cli shutdown
12、开机启动配置
- echo "/usr/local/bin/redis-server /etc/redis/redis.conf &" >> /etc/rc.local
开机启动要配置在
中,而
- rc.local
文件,要有用户登录了,才会被执行。
- /etc/profile
13、设置密码
因为这是给局域网内的很多人使用,所以设置一个访问密码很有必要。
修改 redis.conf 文件配置
使用命令 :/ requirepass 快速查找到 # requirepass foobared 然后去掉注释,这个 foobared 改为自己的密码。然后 wq 保存。
14、重启 redis
sudo service redis restart 这个时候尝试登录 redis,发现可以登上,但是执行具体命令是提示操作不允许
尝试用密码登录并执行具体的命令看到可以成功执行
如果是自己在本机上使用现在已经可以了,因为我这是局域网内提供给大家使用的所以还需要最后的配置。
当时修改开发的配置文件后,启动项目报错。
org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:162) ~[spring-data-redis-1.5.0.RELEASE.jar:1.5.0.RELEASE]
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:251) ~[spring-data-redis-1.5.0.RELEASE.jar:1.5.0.RELEASE]
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:58) ~[spring-data-redis-1.5.0.RELEASE.jar:1.5.0.RELEASE]
at org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:128) ~[spring-data-redis-1.5.0.RELEASE.jar:1.5.0.RELEASE]
打开 cmd 然后使用 telnet ip 端口 来 ping 配置的 redis(要保证 redis 已启动),发现无法 ping 通。
这是因为在 redis.conf 中有个配置 bind 127.0.0.1 这个是默认只有本机访问,把这个注释掉就好了,注释以后查看 redis 进程就变为下面这样:
[root@localhost redis]# ps -ef | grep redis
root 5655 1 0 11:40 ? 00:00:23 ./redis-server *:6379
root 21184 18040 0 17:33 pts/1 00:00:00 grep --color=auto redis
这个 * 号就表示允许其它用户访问了。然后在用打开本机的 cmd 使用 telnet ip 端口 就能 ping 通了。
以上是全部内容,不足之处欢迎指出,互相交流才有进步!
百度搜索 "就爱阅读", 专业资料, 生活学习, 尽在就爱阅读网 92to.com, 您的在线图书馆!
来源: http://www.92to.com/bangong/2017/07-19/25394839.html