最近学习redis时,尝试远程访问centOS7上的redis数据库,遇到了以下问题,记录一下
Redis简介
Redis是一个开源的key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
- Redis官方网站 http://Redis.io
- Redis中文官方网站 http://www.Redis.net.cn
进入正题
我想通过windows系统中的STS访问虚拟机中的CentOS7系统中的Redis,我用的是Xshell和Xftp这两款软件来对CentOS进行操作
故访问的步骤如下:
第一步:开启CentOS7中的Redis数据库
在Xshell中输入命令:
cd /opt/myRedis(opt/myRedis为我的redis软件的安装文件夹,先进入此文件夹以便开启服务)
开启redis服务
redis-server redis.conf
redis-cli
第二步:禁用CentOs7的防火墙(不然会连接失败)
systemctl stop firewalld.service (禁用防火墙)
systemctl disable firewalld.service (禁止开机自启防火墙)
第三步:注释掉redis.conf中的bind 127.0.0.1 ,然后 将protect-mode yes改为protect-mode no
vim /opt/myRedis/redis.conf(打开redis.conf文件)
找到此行,在前面输入 # 注释掉这行
然后找到这个地方,将yes改为no,保存即可
第四步:在STS中进行测试,添加jar包
第五步:写测试代码
package com.wxd.test;
import java.util.Set;
import redis.clients.jedis.Jedis;
public class Test {
public static void main(String[] args) {
Jedis jedis = new Jedis("192.168.174.128", 6379);
String result = jedis.ping();
System.out.println(result);
Set<String> keys = jedis.keys("*");
for (String key : keys) {
System.out.println(key);
}
String select = jedis.select(0);
// System.out.println(select);
String wxd = jedis.set("wxd", "王小达");
System.out.println(jedis.get("wxd"));
jedis.close();
}
}
运行,结果如下:
如果因为某种原因导致连接失败,在修改相应内容后,要记得重启redis的服务,不然依旧会连接失败