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);
            }
        }
        
    }
  • 相关阅读:
    201771030120-王嫄 实验三 结对项目—《西北师范大学疫情防控信息系统》项目报告
    201771030120-王嫄 实验二 个人项目—《西北师范大学学生疫情上报系统》项目报告
    201771030120-王嫄 实验一 软件工程准备 <课程学习目的思考>
    ETH充提币API接口中文文档
    开放API接口 USDT快捷接入充提教程
    比特币BTC支付API接口中文文档
    ERC20充提币API接口文档
    如何调用比特币钱包RPC API实现充值、转账、支付?
    .NET对接交易所钱包教程
    Java 对接交易所钱包解决方案
  • 原文地址:https://www.cnblogs.com/chen1-kerr/p/7345627.html
Copyright © 2011-2022 走看看