redis redisson 集合使用示例(RList、Rset、RMap)


redis redisson 集合操作

 

******************************************

相关类及接口

 

Rlist:链表操作

public interface RList extends List, RExpirable, RListAsync, RSortable>, RandomAccess {

    List get(int... var1);     //获取指定的节点值

    int addAfter(V var1, V var2);  //在var1前添加var2
    int addBefore(V var1, V var2); //在var1后添加var2
    void fastSet(int var1, V var2); //修改var1处的只为var2

    List readAll();  //获取链表的所有值
    RList subList(int var1, int var2);  //获取var1到var2的子链表
    List range(int var1);        //返回var1往后的链表
    List range(int var1, int var2); //返回var1到var2的链表

    void trim(int var1, int var2);  //保留var1到var2处的链表,其余删除

    void fastRemove(int var1);   //删除var1处的值
    boolean remove(Object var1, int var2); //判断元素是否删除

     RCollectionMapReduce mapReduce();  //mapreduce操作

}

 

RSet:无序集合操作

public interface RSet extends Set, RExpirable, RSetAsync, RSortable> {


    V removeRandom();
    Set removeRandom(int var1);    //删除对象

    V random();
    Set random(int var1);   //随机返回对象

    boolean move(String var1, V var2); //判断集合var1中对象是否存在,类似contains()方法

    Set readAll();                  //获取所有对象

    int union(String... var1);         //集合并集对象个数
    Set readUnion(String... var1);  //集合并集

    int diff(String... var1);          //集合差集对象个数
    Set readDiff(String... var1);   //集合差集

    int intersection(String... var1);         //集合交集的对象个数
    Set readIntersection(String... var1);  //集合交集

    Iterator iterator(int var1);
    Iterator iterator(String var1, int var2);
    Iterator iterator(String var1);            //遍历集合

     RCollectionMapReduce mapReduce();


**************************

    RSemaphore getSemaphore(V var1);
    RCountDownLatch getCountDownLatch(V var1);
    RPermitExpirableSemaphore getPermitExpirableSemaphore(V var1);  //信号量

    RLock getLock(V var1);
    RLock getFairLock(V var1);
    RReadWriteLock getReadWriteLock(V var1); //锁操作

    Stream stream(int var1);
    Stream stream(String var1, int var2);
    Stream stream(String var1);    //流操作

}

 

RMap:键值对操作

public interface RMap extends ConcurrentMap, RExpirable, RMapAsync {

    void loadAll(boolean var1, int var2);
    void loadAll(Set var1, boolean var2, int var3);

    V get(Object var1);     //获取var1的值
    V put(K var1, V var2);  //添加对象
    V putIfAbsent(K var1, V var2); //对象不存在则设置

    V replace(K var1, V var2);  //替换对象
    boolean replace(K var1, V var2, V var3);  //替换对象

    V remove(Object var1); //移除对象
    boolean remove(Object var1, Object var2);  //移除对象

    void putAll(Map var1);
    void putAll(Map var1, int var2);   //添加对象

    Map getAll(Set var1);  //获取key在集合var1中的键值对

    int valueSize(K var1);  //key为var1的value大小

    V addAndGet(K var1, Number var2);        //key为var1的value加var2

    long fastRemove(K... var1);              //移除对象
    boolean fastPut(K var1, V var2);         //添加对象
    boolean fastReplace(K var1, V var2);     //替换key为var1的值为var2
    boolean fastPutIfAbsent(K var1, V var2); //如果不存在则设置

    Set readAllKeySet();                //获取所有key,以set形式返回
    Collection readAllValues();         //获取所有value,以collection返回
    Set> readAllEntrySet();    //遍历键值对
    Map readAllMap();                //集合形式转换为map类型

    Set keySet();
    Set keySet(int var1);
    Set keySet(String var1, int var2);
    Set keySet(String var1);             //获取key集合

    Collection values();
    Collection values(String var1);
    Collection values(String var1, int var2);
    Collection values(int var1);         //获取所有value

    Set> entrySet();
    Set> entrySet(String var1);
    Set> entrySet(String var1, int var2);
    Set> entrySet(int var1);    //遍历键值对

     RMapReduce mapReduce();

**********************

    RSemaphore getSemaphore(K var1);
    RCountDownLatch getCountDownLatch(K var1);
    RPermitExpirableSemaphore getPermitExpirableSemaphore(K var1);  //信号量操作

    RLock getLock(K var1);
    RLock getFairLock(K var1);
    RReadWriteLock getReadWriteLock(K var1);  //锁操作

}

 

***************************************

使用示例

 

public class MyTest {

    public static void main(String[] args){
        Config config=new Config();
        config.useSingleServer().setAddress("redis://******:6379").setPassword("123456");

        RedissonClient client= Redisson.create(config);

        RList list=client.getList("list");
        for (int i=0;i<10;i++){
            list.add("瓜田李下 "+i);
        }

        list.readAll().forEach(System.out::println);
        System.out.println("list的数量为:"+list.size()+"\n");

        RSet set=client.getSet("set");
        for (int i=0;i<10;i++){
            set.add("瓜田李下 "+i);
        }

        for (String s : set) {
            System.out.println(s);
        }
        System.out.println("set的大小为:"+set.size()+"\n");

        RMap map=client.getMap("map");
        for (int i=0;i<10;i++){
            map.put(i,"瓜田李下 "+i);
        }

        for (Map.Entry entry:map.entrySet()){
            System.out.println(entry.getKey()+" ==> "+entry.getValue());
        }
        System.out.println("map的大小为:"+map.size());
    }
}

 

******************************

控制台输出

 

瓜田李下 0
瓜田李下 1
瓜田李下 2
瓜田李下 3
瓜田李下 4
瓜田李下 5
瓜田李下 6
瓜田李下 7
瓜田李下 8
瓜田李下 9
list的数量为:10

瓜田李下 0
瓜田李下 1
瓜田李下 7
瓜田李下 3
瓜田李下 5
瓜田李下 4
瓜田李下 9
瓜田李下 8
瓜田李下 6
瓜田李下 2
set的大小为:10

0 ==> 瓜田李下 0
1 ==> 瓜田李下 1
2 ==> 瓜田李下 2
3 ==> 瓜田李下 3
4 ==> 瓜田李下 4
5 ==> 瓜田李下 5
6 ==> 瓜田李下 6
7 ==> 瓜田李下 7
8 ==> 瓜田李下 8
9 ==> 瓜田李下 9
map的大小为:10

 

 

你可能感兴趣的:(redis,redis,redisson集合操作)