使用jedis客户端连接redis,单机版和集群版

柔光的暖阳◎ 2022-05-10 06:04 298阅读 0赞

引入原著:https://www.cnblogs.com/zqr99/p/8099978.html

单机版

1.入门实例

ExpandedBlockStart.gif

复制代码

  1. @Test
  2. public void testJedis(){
  3. //创建一个jedis对象,需要指定服务的ip和端口号
  4. Jedis jedis=new Jedis("192.168.25.11",6379);
  5. //直接操作数据库
  6. jedis.set("str","nihao");
  7. //关闭
  8. jedis.close();
  9. }

复制代码

ExpandedBlockStart.gif

复制代码

  1. @Test
  2. public void testGetJedis(){
  3. //创建一个jedis对象,需要指定服务的ip和端口号
  4. Jedis jedis=new Jedis("192.168.25.11",6379);
  5. //直接操作数据库
  6. String str = jedis.get("str");
  7. System.out.println(str);
  8. //关闭
  9. jedis.close();
  10. }

复制代码

ExpandedBlockStart.gif

  1. <dependency>
  2. <groupId>redis.clients</groupId>
  3. <artifactId>jedis</artifactId>
  4. <jedis.version>2.7.2</jedis.version>
  5. </dependency>

这样使用的话,每次都需要创建连接和关闭连接,耗费性能,所以一般实际项目中我们一般会采用连接池的方式进行开发

2.使用数据库连接池的方式操作redis

ExpandedBlockStart.gif

复制代码

  1. @Test
  2. public void testJedisPool(){
  3. //创建连接池(单例),需要指定服务ip和端口号
  4. JedisPool pool=new JedisPool("192.168.25.11",6379);
  5. //从连接池中获得连接
  6. Jedis resource = pool.getResource();
  7. //使用Jedis操作数据库(方法级别使用)
  8. String str = resource.get("str");
  9. System.out.println(str);
  10. //一定要关闭Jedis连接
  11. resource.close();
  12. //系统关闭前关闭连接池
  13. pool.close();
  14. }

复制代码

集群版

1.直接使用

ExpandedBlockStart.gif

复制代码

  1. public void testRedisCluster() {
  2. //创建一个JedisCluster对象,构造参数Set类型,集合中每个元素 是一个HostAndPort类型
  3. Set<HostAndPort> nodes=new HashSet<>();
  4. nodes.add(new HostAndPort("192.168.25.11",7001));
  5. nodes.add(new HostAndPort("192.168.25.11",7002));
  6. nodes.add(new HostAndPort("192.168.25.11",7003));
  7. nodes.add(new HostAndPort("192.168.25.11",7004));
  8. nodes.add(new HostAndPort("192.168.25.11",7005));
  9. nodes.add(new HostAndPort("192.168.25.11",7006));
  10. JedisCluster jedisCluster=new JedisCluster(nodes);
  11. //直接使用JedisCluster操作redis,自带连接池,JedisCluster可以是单例的
  12. jedisCluster.set("nihao","你好");
  13. System.out.println(jedisCluster.get("nihao"));
  14. //系统关闭前,关闭JedisCluster.
  15. jedisCluster.close();
  16. }

复制代码

使用Spring整合redis集群

ExpandedBlockStart.gif

复制代码

  1. <bean class="redis.clients.jedis.JedisCluster" id="jedisCluster">
  2. <constructor-arg name="nodes">
  3. <set>
  4. <bean class="redis.clients.jedis.HostAndPort">
  5. <constructor-arg name="host" value="192.168.25.11"/>
  6. <constructor-arg name="port" value="7001"/>
  7. </bean>
  8. <bean class="redis.clients.jedis.HostAndPort">
  9. <constructor-arg name="host" value="192.168.25.11"/>
  10. <constructor-arg name="port" value="7002"/>
  11. </bean>
  12. <bean class="redis.clients.jedis.HostAndPort">
  13. <constructor-arg name="host" value="192.168.25.11"/>
  14. <constructor-arg name="port" value="7003"/>
  15. </bean>
  16. <bean class="redis.clients.jedis.HostAndPort">
  17. <constructor-arg name="host" value="192.168.25.11"/>
  18. <constructor-arg name="port" value="7004"/>
  19. </bean>
  20. <bean class="redis.clients.jedis.HostAndPort">
  21. <constructor-arg name="host" value="192.168.25.11"/>
  22. <constructor-arg name="port" value="7005"/>
  23. </bean>
  24. <bean class="redis.clients.jedis.HostAndPort">
  25. <constructor-arg name="host" value="192.168.25.11"/>
  26. <constructor-arg name="port" value="7006"/>
  27. </bean>
  28. </set>
  29. </constructor-arg>
  30. </bean>
  31. <bean class="com.taotao.jedis.JedisClientCluster" id="jedisCluster"/>

复制代码

ExpandedBlockStart.gif

复制代码

  1. private JedisCluster jedisCluster;
  2. @Before
  3. public void testBefore(){
  4. ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("Spring/applicationContext-redis.xml");
  5. jedisCluster=classPathXmlApplicationContext.getBean(JedisCluster.class);
  6. }
  7. @Test
  8. public void testJedisSping(){
  9. jedisCluster.set("11","11");
  10. System.out.println( jedisCluster.get("11"));
  11. }

发表评论

表情:
评论列表 (有 0 条评论,298人围观)

还没有评论,来说两句吧...

相关阅读