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。
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);
}
}
|
缺点: