怎样使用Java操作redis
这篇文章给大家介绍怎样使用Java操作redis,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
Redis的知识我们已经介绍的差不多了,我们来看看如何使用Java操作redis。
查看redis官网,我们发现用Java操作redis,我们有多种解决方案,如下图:
这里的解决方案有多种,我们采用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依赖,如下:
redis.clients jedis 2.9.0
然后我们可以通过如下一个简单的程序测试一下连接是否成功:
public static void main(String[] args) { Jedis jedis = new Jedis("192.168.248.128", 6379); String ping = jedis.ping(); System.out.println(ping);}
运行之后,看到如下结果表示连接成功了:
连接成功之后,剩下的事情就比较简单了,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集群,要怎么连接呢?很简单,如下:
SetclusterNodes = new HashSet ();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命令也是基本一致,我就不再重复介绍了。
关于怎样使用Java操作redis就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。