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);
            }
        }
        
    }
  • 相关阅读:
    Muduo 网络编程示例之五: 测量两台机器的网络延迟
    “过家家”版的移动离线计费系统实现
    一种自动反射消息类型的 Google Protobuf 网络传输方案
    Muduo 设计与实现之一:Buffer 类的设计
    为什么 muduo 的 shutdown() 没有直接关闭 TCP 连接?
    Muduo 网络编程示例之八:用 Timing wheel 踢掉空闲连接
    C++ 工程实践(5):避免使用虚函数作为库的接口
    分布式系统中的进程标识
    Ormlite在一般java环境中操作Sqlite
    android游戏开发框架libgdx的使用(十八)—简单的AVG游戏效果实现
  • 原文地址:https://www.cnblogs.com/chen1-kerr/p/7345627.html
Copyright © 2011-2022 走看看