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特性,比如排序,事務,管道,集群等。
發布時間短,穩定性和可靠性有待驗證。
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM