redissonclient 介绍及优缺点(18)
由于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,代码是这样的:
2.⽀持存储pojo 对象,⽐如要存储⼀个TestObject ,代码是这样的:
3.是线程安全的,这也是redisson 特别强调的,看⼀下List 的存储逻辑,使⽤watch ,muti ,exec 保证了数据的⼀致性。 
缺点:
不⽀持字符串存储,Redisson 的实现类中只⽀持集合操作,不能对普通字符做操作。
不⽀持很多redis 特性,⽐如排序,事务,管道,集等。
发布时间短,稳定性和可靠性有待验证。1
2
3
4
5List<Integer> list = List( "list" );list.add( 1 );list.add( 2 );list.add( 3 );list.add( 4 );
1
2List<TestObject> list = List( "list" );list.add( new  TestObject());1
2redis支持的数据结构
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18public  V set( int  index, V element) {        checkIndex(index);        RedisConnection<String, Object> conn = tion();        try  {            while  ( true  ) {                conn.watch(getName());                V prev = (V) conn.lindex(getName(), index);                  conn.multi();                conn.lset(getName(), index, element);                if  (().size() ==  1 ) {                    return  prev;                }            }        }  finally  {            lease(conn);        }    }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。