zoukankan      html  css  js  c++  java
  • redisson client 介绍及优缺点

      由于redisson是2014年1月份才发布的开源项目,对于很多使用redis的用户来说,还是个新东西,关于redisson的文档除了github上边有简单介绍之外,其它网站还没有,所以我基于对源码的理解还有github介绍,简单介绍下redisson。
     
      redisson实现了分布式和可扩展的java数据结构,支持的数据结构有:List, Set, Map, Queue, SortedSet, ConcureentMap, Lock, AtomicLong, CountDownLatch。并且是线程安全的,底层使用Netty 4实现网络通信。和jedis相比,功能比较简单,不支持排序,事务,管道,分区等redis特性,可以认为是jedis的补充,不能替换jedis。
     
    优点:
    1.可以使用熟悉的java数据结构,比如要往List中存储1,2,3,4,代码是这样的:
    List<Integer> list = redisson.getList("list");
    list.add(1);
    list.add(2);
    list.add(3);
    list.add(4);
    

    2.支持存储pojo对象,比如要存储一个TestObject,代码是这样的:

    List<TestObject> list = redisson.getList("list");
    list.add(new TestObject());
    

    3.是线程安全的,这也是redisson特别强调的,看一下List的存储逻辑,使用watch,muti,exec保证了数据的一致性。  

    public V set(int index, V element) {
            checkIndex(index);
            RedisConnection<String, Object> conn = connectionManager.connection();
            try {
                while (true) {
                    conn.watch(getName());
                    V prev = (V) conn.lindex(getName(), index);
    
                    conn.multi();
                    conn.lset(getName(), index, element);
                    if (conn.exec().size() == 1) {
                        return prev;
                    }
                }
            } finally {
                connectionManager.release(conn);
            }
        }
    

    缺点:

    不支持字符串存储,Redisson的实现类中只支持集合操作,不能对普通字符做操作。
    不支持很多redis特性,比如排序,事务,管道,集群等。
    发布时间短,稳定性和可靠性有待验证。
     
     
  • 相关阅读:
    记一次诡异的调优
    java动态代理学习笔记
    c#反射机制学习和利用反射获取类型信息
    php开启ssl的方法
    关于java中split的使用
    c#使用反射调用类型成员示例
    C#关于反射加载的问题
    Twitter:使用Netty 4来减少GC开销
    Java中如何修改Jar中的内容
    Android中自定义视图View之---前奏篇
  • 原文地址:https://www.cnblogs.com/herui/p/3631247.html
Copyright © 2011-2022 走看看