• 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);
            }
        }
        
    }
  • 相关阅读:
    科学美国人(Scientific American)部分段落小译
    Matlab安装使用libsvm
    【转】Matlab中特殊符号的写法
    计算机视觉资源
    AdaBoost
    AdaBoost人脸检测原理
    NLP常用开源/免费工具(转)
    搜索背后的奥秘——浅谈语义主题计算
    求数组当中子数组最大和
    求二叉树中两个节点的最低父节点
  • 原文地址:https://www.cnblogs.com/chen1-kerr/p/7345627.html
Copyright © 2020-2023  润新知