Jedis使用

2年前 (2022) 程序员胖胖胖虎阿
154 0 0

Redis的知识我们已经介绍的差不多了,本文我们来看看如何使用Java操作redis。

本文是Redis系列的第十三篇文章,了解前面的文章有助于更好的理解本文:


1.Linux上安装Redis
2.Redis中的五种数据类型简介
3.Redis字符串(STRING)介绍
4.Redis字符串(STRING)中BIT相关命令
5.Redis列表与集合
6.Redis散列与有序集合
7.Redis中的发布订阅和事务
8.Redis快照持久化
9.Redis之AOF持久化
10.Redis主从复制(一)
11.Redis主从复制(二)
12.Redis集群搭建  


有哪些解决方案

查看redis官网,我们发现用Java操作redis,我们有多种解决方案,如下图:

Jedis使用
这里的解决方案有多种,我们采用Jedis,其他的框架也都大同小异,我这里权当抛砖引玉,小伙伴也可以研究研究其他的方案,欢迎投稿。

配置

客户端要能够成功连接上redis服务器,需要检查如下三个配置:

1.远程Linux防火墙已经关闭,以我这里的CentOS7为例,关闭防火墙命令

systemctl stop firewalld.service

同时还可以再补一刀

systemctl disable firewalld.service

表示禁止防火墙开机启动。

2.关闭redis保护模式,在redis.conf文件中,修改protected为no,如下:

protected-mode no

3.注释掉redis的ip地址绑定,还是在redis.conf中,将bind:127.0.0.1注释掉,如下:

# bind:127.0.0.1

确认了这三步之后,就可以远程连接redis了。

Java端配置

上面的配置完成后,我们可以创建一个普通的JavaSE工程来测试下了,Java工程创建成功后,添加Jedis依赖,如下:

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>

然后我们可以通过如下一个简单的程序测试一下连接是否成功:

public static void main(String[] args) {
    Jedis jedis = new Jedis("192.168.248.128", 6379);
    String ping = jedis.ping();
    System.out.println(ping);
}

运行之后,看到如下结果表示连接成功了:

Jedis使用    

连接成功之后,剩下的事情就比较简单了,Jedis类中方法名称和redis中的命令基本是一致的,看到方法名小伙伴就知道是干什么的,因此这些我这里不再重复叙述。

频繁的创建和销毁连接会影响性能,我们可以采用连接池来部分的解决这个问题:

public static void main(String[] args) {
    GenericObjectPoolConfig config = new GenericObjectPoolConfig();
    config.setMaxTotal(100);
    config.setMaxIdle(20);
    JedisPool jedisPool = new JedisPool(config, "192.168.248.128", 6379);
    Jedis jedis = jedisPool.getResource();
    System.out.println(jedis.ping());
}

这样就不会频繁创建和销毁连接了,在JavaSE环境中可以把连接池配置成一个单例模式,如果用了Spring容器的话,可以把连接池交给Spring容器管理。

上面这种连接都是连接单节点的Redis,如果是一个Redis集群,要怎么连接呢?很简单,如下:

Set<HostAndPort> clusterNodes = new HashSet<HostAndPort>();
clusterNodes.add(new HostAndPort("192.168.248.128", 7001));
clusterNodes.add(new HostAndPort("192.168.248.128", 7002));
clusterNodes.add(new HostAndPort("192.168.248.128", 7003));
clusterNodes.add(new HostAndPort("192.168.248.128", 7004));
clusterNodes.add(new HostAndPort("192.168.248.128", 7005));
clusterNodes.add(new HostAndPort("192.168.248.128", 7006));
JedisCluster jc = new JedisCluster(clusterNodes);
jc.set("address", "深圳");
String address = jc.get("address");
System.out.println(address);

JedisCluster中的方法与Redis命令也是基本一致,我就不再重复介绍了。

好了,jedis就说这么多,有问题欢迎留言讨论。

更多资料请关注公众号:

Jedis使用  

本文分享自微信公众号 - 江南一点雨(a_javaboy)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

版权声明:程序员胖胖胖虎阿 发表于 2022年10月4日 上午8:32。
转载请注明:Jedis使用 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...