Redis是开源的key-value存储工具,redis通常用来存储结构化的数据,因为redis的key可以包含String、hash、listset和sorted list。
Redisserver目前最稳定的版本是2.8.9,可以到官网http://redis.io/download下载。根据机器的类型及位数下载对应的版本安装即可,reids支持linux和windows操作系统。
Redisclient支持多种语言,包括:c、C++、C#、php、java、python、go等语言,根据自己的开发语言,选择合适的redis client版本类型即可。我是使用java语言开发的,针对java语言,redis client也提供了多种客户端支持,按照推荐类型依次是:Jedis、Redisson、JRedis、JDBC-Redis、RJC、redis-protocol、aredis、lettuce。前两种类型是比较推荐的,我们采用了Redisson类型版本作为redisclient的使用。
Redisson的源码工程所在位置:https://github.com/mrniko/redisson。
由于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,代码是这样的:
1
2
3
4
5
|
List<Integer> list = redisson.getList( "list" );
list.add( 1 );
list.add( 2 );
list.add( 3 );
list.add( 4 );
|
2.支持存储pojo对象,比如要存储一个TestObject,代码是这样的:
1
2
|
List<TestObject> list = redisson.getList( "list" );
list.add( new TestObject());
|
3.是线程安全的,这也是redisson特别强调的,看一下List的存储逻辑,使用watch,muti,exec保证了数据的一致性。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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特性,比如排序,事务,管道,集群等。
发布时间短,稳定性和可靠性有待验证。
相关推荐
基于Redis服务器构建的分布式和可扩展的Java数据结构(Set, SortedSet, Map, ConcurrentMap, List, Queue, Deque, Lock, AtomicLong, CountDownLatch, Publish / Subscribe, HyperLogLog),是一个高级Redis Java客户端...
java连接Redis服务器端的示例工程,演示了通过Redisson 连接redis服务器的读取与存储代码
赠送jar包:spire-macros_2.12-0.13.0.jar; 赠送原API文档:spire-macros_2.12-0.13.0-javadoc.jar; 赠送源代码:spire-macros_2.12-0.13.0-sources.jar; 赠送Maven依赖信息文件:spire-macros_2.12-0.13.0.pom;...
Redisson-Redis Java客户端具有内存中数据网格的功能 | | | | | 基于高性能的异步和无锁Java Redis客户端和框架。 JDK兼容性:1.8-15,Android 产品特点 Redis复制设置(包括对和) Redis群集设置(包括对和) ...
Redisson 3.15.1 Sentinel身份验证问题该存储库旨在帮助重现和分析 3.15.1中与Redis Sentinel身份验证有关的问题。重现步骤问题使用docker-compose up -d启动Docker Compose堆栈;使用mvn compile exec:java编译并...
redisson.zip,基于redis的分布式可伸缩java数据结构。高级redis客户端。redisson-redis java客户端,具有内存数据网格的特性。支持超过30个对象和服务:set、multimap、sortedset、map、list、queue、deque、...
为您提供MessagePipe分布式消息顺序消费管道下载,Message Pipe是基于Redis实现的顺序消息管道,由于内部引入了Redisson分布式锁所以它是线程安全的,多线程情况下也会按照写入管道的顺序执行消费。Message Pipe采用...
软件架构 - java后台:music-server ...| redisson | 3.10.6 | 对redis进行封装、集成分布式锁等 | | hikari | 3.2.0| 数据库连接池| | log4j2 | 2.11.2 | 更快的log日志工具 | | fst| 2.57 | 更快的序列化
Message Pipe是基于Redis实现的顺序消息管道,由于内部引入了Redisson分布式锁所以它是线程安全的,多线程情况下也会按照写入管道的顺序执行消费。 Message Pipe采用Client、Server概念进行设计,内部通过grpc-netty...
为您提供MessagePipe分布式消息顺序消费管道下载,Message Pipe是基于Redis实现的顺序消息管道,由于内部引入了Redisson分布式锁所以它是线程安全的,多线程情况下也会按照写入管道的顺序执行消费。Message Pipe采用...
- 整合Redisson拓展Redis的功能,读写分离 - 整合消息队列RabbitMQ,实现消息通知、延迟消息,服务解耦。 - 各模块独立,基本可插拔:若只需查询注解等基础功能,只需引入Core模块即可,Beans, Security, Logging, ...
[client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8mb4 [mysqld] # 设置3306端口 port=3306 # 允许最大连接数 max_connections=200 # 允许连接失败的次数。 max_connect