借助Jedis远程连接Redis数据库
定上一篇文章介绍了Redis在Ubuntu的简单配置,下面介绍一下其Redis的远程连接

Redis对开发者是非常友好的,无论你使用什么编程语言,官方似乎都提供了连接支持,可以在官网查看相关配置(https://redis.io/),打开官网选择Clients标签,你会看到如下页面:
文章正文图片
根据使用的编程语言即可查看配置。此次示例以Java为例,Java中连接Redis官方比较推荐的是Jedis,相关jar包可以自行搜索下载,这里我就用Maven直接引入了。依赖配置如下:
<dependency>
     <groupId>redis.clients</groupId>
     <artifactId>jedis</artifactId>
     <version>2.9.0</version>
     <type>jar</type>
     <scope>compile</scope>
</dependency>

下面就能进行连接了,一个简单的Demo:
import redis.clients.jedis.Jedis;

public class JedisTest {
    public static void main(String[] args) {
        //获取Jedis连接对象  IP + 端口
        Jedis jedis = new Jedis("192.168.80.128", 6379);
        //存储数据测试
        jedis.set("color", "white");
        //获取数据并输出
        System.out.println(jedis.get("color"));
        //释放资源
        jedis.close();
    }
}

这里我连接的对象为虚拟机中的Redis,看似一切正常,点击运行发现抛出异常
文章正文图片
意思是连接被拒绝,查了资料发现还是配置文件的问题(有时间的话很有必要好好看看)。解决方法是将配置文件中的绑定本地IP(bind 128.0.0.1)一行注释掉:
文章正文图片
这是第一步,此时如果运行测试Demo,会抛出以下异常,当然离成功就差一点点了,异常描述中也给出了四种方法:
文章正文图片
法一:关闭保护模式(通过指令)
法二:关闭保护模式(通过修改配置文件并重启Redis)
法三:若仅仅是测试,可以在运行Redis是加上参数暂时关闭保护模式
法四:绑定当前访问的IP或者设定一个密码

显然,设定一个密码是比较靠谱的。那就设定一个密码吧。方法如下:找到配置文件中的 SECURITY 一栏,将Requirepass XXXXXX一栏解除注释,然后替换上自己的密码,保存后重启Redis。
文章正文图片
在本地测试一下:
文章正文图片
一切正常,既然设置了密码,那么Java也要用类似的方法传入密码才行:
import redis.clients.jedis.Jedis;

public class JedisTest {
    public static void main(String[] args) {
        //获取Jedis连接对象  IP + 端口
        Jedis jedis = new Jedis("192.168.80.128", 6379);
        //传入密码获取操作权限
        jedis.auth("devsong.org");
        //存储数据测试
        jedis.set("color", "white");
        //获取数据并输出
        System.out.println(jedis.get("color"));
        //释放资源
        jedis.close();
    }
}

这样一来,操作就正常了。运行之后可以看到没抛异常,并且显示出了正确的结果 white。

总结
Redis配置文件注释详细,有时间的话非常有必要熟悉一下配置文件,避免走弯路多花时间。关于Redis的简单配置,请参看上一篇文章,点击文章末尾的 Redis标签 即可查看相关文章。

 
【原创内容,转载请注明出处】
It's
欢迎访问本站,欢迎留言、分享、点赞。愿您阅读愉快!
*转载请注明出处,严禁非法转载。
https://www.devsong.org
QQ留言 邮箱留言
头像
引用:
取消回复
提交
涂鸦
涂鸦
热门