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);
            }
        }
        
    }
  • 相关阅读:
    卡特兰数
    hdu 1023 Train Problem II
    hdu 1022 Train Problem
    hdu 1021 Fibonacci Again 找规律
    java大数模板
    gcd
    object dection资源
    Rich feature hierarchies for accurate object detection and semantic segmentation(RCNN)
    softmax sigmoid
    凸优化
  • 原文地址:https://www.cnblogs.com/chen1-kerr/p/7345627.html
Copyright © 2011-2022 走看看