zoukankan      html  css  js  c++  java
  • Redis之set类型操作

    接口:

    package com.net.test.redis.base.dao;
    /**
     * @author***
     * @Time:2017年8月10日 下午2:32:12
     * @version 1.0
     * @description
     */
    public interface IRedisDaoNoSotredSet {
    
        public void add(String key, String...values);
        
        public void diff(String key, String otherKey);
        
        public void diddStore(String destKey, String key, String otherKey);
        
        public void inter(String key, String otherKey);
        
        public void interStore(String destKey, String key, String otherKey);
        
        public void union(String key, String otherKey);
        
        public void unionStore(String destKey, String key, String otherKey);
        
        public void pop(String key);
        
        public void remove(String key,String...values);
        
        public void size(String key);
    
        public void smembers(String key);
        
    }

    实现类:

    package com.net.test.redis.base.dao.imp;
    
    import java.util.Set;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.core.SetOperations;
    import org.springframework.stereotype.Repository;
    
    import com.net.test.redis.base.dao.IRedisDaoNoSotredSet;
    
    /**
     * @author ***
     * @Time:2017年8月10日 下午2:53:33
     * @version 1.0
     * @description
     */
    @Repository
    public class RedisDaoNoSotredSetImp implements IRedisDaoNoSotredSet{
    
        @Autowired
        private RedisTemplate<String, String>  redis;
        
        /**
         * @description 添加元素
         * @param key
         * @param values
         */
        @Override
        public void add(String key, String...values) 
        {
            SetOperations<String, String> oper = redis.opsForSet();
            int value =    oper.add(key, values).intValue();
            System.out.println("是否添加成功 :" + value);
        }
        
        /**
         * @description 找出两个集合不同的部分,并进行遍历
         * @param key
         * @param otherKey
         */
        @Override
        public void diff(String key, String otherKey)
        {
            SetOperations<String, String> oper = redis.opsForSet();
            Set<String> set = oper.difference(key,otherKey);
            for(String str : set)
            {
                System.out.println("两个set的不同元素 : " + str);
            }
        }
        
        /**
         * @description  找出两个集合不同的部分,并存到destKey集合中
         * @param destKey
         * @param key
         * @param otherKey
         */
        @Override
        public void diddStore(String destKey, String key, String otherKey)
        {
            SetOperations<String, String> oper = redis.opsForSet();
            int value = oper.differenceAndStore(key, otherKey, destKey).intValue();
            System.out.println("返回值 : " + value);
        }
        
        /**
         * @description 找出两个集合的相同部分,并进行遍历
         * @param key
         * @param otherKey
         */
        @Override
         public void inter(String key, String otherKey)
        {
            SetOperations<String, String> oper = redis.opsForSet();
            Set<String> set = oper.intersect(key, otherKey);
            for(String str : set)
            {
                System.out.println("两个set的相同元素 : " + str);
            }
        }
        
        /**
         * @description 找出两个集合的相同部分,存到新集合destKey中
         * @param destKey
         * @param key
         * @param otherKey
         */
        @Override
        public void interStore(String destKey, String key, String otherKey)
        {
            SetOperations<String, String> oper = redis.opsForSet();
            int value = oper.intersectAndStore(key, otherKey, destKey).intValue();
            System.out.println("返回值 : " + value); 
        }
        
        /** 
         * @description  找出兩個集合的并集,并進行遍歷
         * @param key
         * @param otherKey
         */
        @Override
        public void union(String key, String otherKey) 
        {
            SetOperations<String, String> oper = redis.opsForSet();
            Set<String> set = oper.union(key, otherKey);
            for(String str : set)
            {
                System.out.println("两个set的相同元素 : " + str);
            }
        }
        
        /**
         * @description 找出兩個集合的并集,并存放到新集合destKey中
         * @param destKey
         * @param key
         * @param otherKey
         */
        @Override
        public void unionStore(String destKey, String key, String otherKey) 
        {
            SetOperations<String, String> oper = redis.opsForSet();
            int value = oper.unionAndStore(key, otherKey, destKey).intValue();
            System.out.println("返回值 : " + value); 
        }
    
        /**
         * @description  无序集合,随机移除一个元素
         * @param key
         */
        @Override
        public void pop(String key)
        {
            SetOperations<String, String> oper = redis.opsForSet();
            String value = oper.pop(key);
            System.out.println("随机移除的value为 : " + value);
        }
        
        /**
         * @description 根据给定的元素,去移除
         * @param key
         * @param values
         */
        @Override
        public void remove(String key, String...values) 
        {
            SetOperations<String, String> oper = redis.opsForSet();
            int value = oper.remove(key, (Object[])values).intValue();
            System.out.println("是否成功移除选定元素 : " + value);
        }
        
        /**
         * @description 获取集合长度
         * @param key
         */
        @Override
        public void size(String key) 
        {
            SetOperations<String, String> oper = redis.opsForSet();
            int value = oper.size(key).intValue();
            System.out.println("set 集合长度为  : " + value);
        }
        
        /**
         * @description    遍历整个集合
         * @param key
         */
        @Override
        public void smembers(String key) 
        {    
            SetOperations<String, String> oper = redis.opsForSet();
            Set<String> set = oper.members(key);
            for(String str : set)
            {
                System.out.println("两个set的相同元素 : " + str);
            }
        }
        
    }
  • 相关阅读:
    go开发环境配置
    Go环境配置
    为什么Redis集群有16384个槽【转发】
    Spring Cloud Hystrix降级处理超时时间设置
    win10下查看进程,杀死进程【转载】
    SpringCloud的各种超时时间配置效果
    解决springcloud Feign项目中遇到的timeout请求超时的问题【转载】
    数据库索引
    XML
    JDBC
  • 原文地址:https://www.cnblogs.com/chen1-kerr/p/7345627.html
Copyright © 2011-2022 走看看