java代码中操作Redis:单机redis、集群redis(spring+redis集成)

一、准备

  1. 关于redis的一些安装,可以查看我的几篇文章自行安装:Redis目录

  2. 一个web项目,我这边一直用的一个github项目是:https://github.com/gubaijin/buildmavenweb

  3. 导入java的Redis客户端依赖包Jedis:
    
                redis.clients
                jedis
                2.9.0
            


二、单机Redis

  1. 简单单机用代码测试:
    Jedis jedis = new Jedis("localhost");
    jedis.set("foo", "bar");
    String value = jedis.get("foo");

  2. 跟spring集成,大家可以直接点击查看:J2ee项目从0搭建(十一):在项目中集成Redis,用于数据的存储或者缓存


三、代码中连接redis集群

//使用jedis在代码中连接redis集群,因为是集群,可以自动发现,也同样只要一个地址就行了
        Set jedisClusterNodes = new HashSet();
        //Jedis Cluster will attempt to discover cluster nodes automatically
        jedisClusterNodes.add(new HostAndPort("192.168.240.142", 6379));
        JedisCluster jc = new JedisCluster(jedisClusterNodes);
        jc.set("foo", "bar");
        String value = jc.get("foo");
        System.out.println(value);
运行后发现可以正常取到:
java代码中操作Redis:单机redis、集群redis(spring+redis集成)_第1张图片

用redis客户端到redis集群中查看验证,存入时我们连接的是142,此时我们在144上进行验证:

java代码中操作Redis:单机redis、集群redis(spring+redis集成)_第2张图片

四、spring-data-redis连接redis集群

因为实际中我们不可能每次使用的时候都去new一下,然后连接,所以这边推荐使用spring集成redis,并且使用较新的包(版本较低的可能不支持redis集群)。

  1. 导入jedis包后,还要导入spring-data-redis:
    
                org.springframework.data
                spring-data-redis
                1.7.2.RELEASE
            



  2. 创建一个redisCluster.properties:
    #redis setting
    redis.host1=192.168.240.142
    redis.port1=6379
    
    #jedis setting
    jedis.maxIdle=6
    jedis.minEvictableIdleTimeMillis=300000
    jedis.numTestsPerEvictionRun=3
    jedis.timeBetweenEvictionRunsMillis=60000



  3. 创建一个spring-redisCluster.xml:
    
    
    
        
    
        
        
    
        
        
            
            
            
            
            
            
            
            
        
    
        
        
            
                
                    
                    
                    
                
                
            
            
        
    


  4. 新建一个 RedisClusterUtils.class用来存放一些统一的redis集群操作:
    package com.spring.demo.redis;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    import redis.clients.jedis.JedisCluster;
    
    import java.util.List;
    
    @Component
    public class RedisClusterUtils {
    
        @Autowired
        private JedisCluster jedisCluster;
    
        /**
         * 得到指定key值的value
         * @param key
         */
        public Object get(String key){
            return jedisCluster.get(key);
        }
    
        /**
         * 保存指定key值的value
         * @param key
         * @param value
         */
        public void set(String key, String value){
            jedisCluster.set(key, value);
        }
    
        /**
         * 保存指定key值的value
         * @param key
         * @param list
         */
        public void set(String key, List list){
            jedisCluster.rpush(key, (String[]) list.toArray());
        }
    
        /**
         * 删除指定key的value
         * @param key
         */
        public void del(String key){
            jedisCluster.del(key);
        }
    }
    


  5. 代码运行验证:
            //spring集成redis集群
            ApplicationContext ctx = new ClassPathXmlApplicationContext("/spring-redisCluster.xml");
            RedisClusterUtils redisClusterUtils = (RedisClusterUtils) ctx.getBean("redisClusterUtils");
            redisClusterUtils.set("redisCluster", "RedisClusterUtils");
            System.out.println(redisClusterUtils.get("redisCluster"));
    java代码中操作Redis:单机redis、集群redis(spring+redis集成)_第3张图片


  6. 客户端命令行连接集群验证,这次我们选择143进行验证java代码中操作Redis:单机redis、集群redis(spring+redis集成)_第4张图片

五、资料地址:

https://github.com/xetorthio/jedis



你可能感兴趣的:(Redis,redis集群,redis-cluster,集群,redis,jedis)