使用jedis客户端连接redis,单机版和集群版
单机版
1.入门实例
@Test public void testJedis(){ //创建一个jedis对象,需要指定服务的ip和端口号 Jedis jedis=new Jedis("192.168.25.11",6379); //直接操作数据库 jedis.set("str","nihao"); //关闭 jedis.close(); }
@Test public void testGetJedis(){ //创建一个jedis对象,需要指定服务的ip和端口号 Jedis jedis=new Jedis("192.168.25.11",6379); //直接操作数据库 String str = jedis.get("str"); System.out.println(str); //关闭 jedis.close(); }
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <jedis.version>2.7.2</jedis.version> </dependency>
这样使用的话,每次都需要创建连接和关闭连接,耗费性能,所以一般实际项目中我们一般会采用连接池的方式进行开发
2.使用数据库连接池的方式操作redis
@Test public void testJedisPool(){ //创建连接池(单例),需要指定服务ip和端口号 JedisPool pool=new JedisPool("192.168.25.11",6379); //从连接池中获得连接 Jedis resource = pool.getResource(); //使用Jedis操作数据库(方法级别使用) String str = resource.get("str"); System.out.println(str); //一定要关闭Jedis连接 resource.close(); //系统关闭前关闭连接池 pool.close(); }
集群版
1.直接使用
public void testRedisCluster() { //创建一个JedisCluster对象,构造参数Set类型,集合中每个元素 是一个HostAndPort类型 Set<HostAndPort> nodes=new HashSet<>(); nodes.add(new HostAndPort("192.168.25.11",7001)); nodes.add(new HostAndPort("192.168.25.11",7002)); nodes.add(new HostAndPort("192.168.25.11",7003)); nodes.add(new HostAndPort("192.168.25.11",7004)); nodes.add(new HostAndPort("192.168.25.11",7005)); nodes.add(new HostAndPort("192.168.25.11",7006)); JedisCluster jedisCluster=new JedisCluster(nodes); //直接使用JedisCluster操作redis,自带连接池,JedisCluster可以是单例的 jedisCluster.set("nihao","你好"); System.out.println(jedisCluster.get("nihao")); //系统关闭前,关闭JedisCluster. jedisCluster.close(); }
使用Spring整合redis集群
<bean class="redis.clients.jedis.JedisCluster" id="jedisCluster"> <constructor-arg name="nodes"> <set> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.25.11"/> <constructor-arg name="port" value="7001"/> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.25.11"/> <constructor-arg name="port" value="7002"/> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.25.11"/> <constructor-arg name="port" value="7003"/> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.25.11"/> <constructor-arg name="port" value="7004"/> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.25.11"/> <constructor-arg name="port" value="7005"/> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.25.11"/> <constructor-arg name="port" value="7006"/> </bean> </set> </constructor-arg> </bean> <bean class="com.taotao.jedis.JedisClientCluster" id="jedisCluster"/>
private JedisCluster jedisCluster; @Before public void testBefore(){ ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("Spring/applicationContext-redis.xml"); jedisCluster=classPathXmlApplicationContext.getBean(JedisCluster.class); } @Test public void testJedisSping(){ jedisCluster.set("11","11"); System.out.println( jedisCluster.get("11")); }