Redisson中怎么操作Redis五种基本数据类型

Redisson 中怎么操作 Redis 五种基本数据类型

Redis 支持五种数据类型：

string（字符串）

hash（哈希）

list（列表）

set（集合）

zset (sorted set：有序集合)

string

string 是 redis 最基本的类型，string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如 jpg 图片或者序列化的对象。string 类型是 Redis 最基本的数据类型，string 类型的值最大能存储 512MB。

Redisson 将 Redis 中的字符串数据结构封装成了 RBucket，通过 RedissonClient 的 getBucket (key) 方法获取一个 RBucket 对象实例，通过这个实例可以设置 value 或设置 value 和有效期。

Copy
RBucket<Object> rBucket = redissonClient.getBucket("k1");
rBucket.set("v1",500, TimeUnit.MILLISECONDS);
String sValue = (String) rBucket.get();

hash

Redis hash 是一个键值 (key=>value) 对集合。Redis hash 是一个 string 类型的 field 和 value 的映射表，hash 特别适合用于存储对象。Hash 适合存储对象，并且可以像数据库中 update 一个属性一样只修改某一项属性值 (不需取出整个字符串反序列化成对象修改完再序列化存回去)，比如存储、读取、修改用户属性。

Redisson 将 Redis 中的字符串数据结构封装成了 RMap

Copy
final RMap rMap = redissonClient.getMap("m1");
rMap.put("id","1");
rMap.put("name","jk");
rMap.expire(500,TimeUnit.MILLISECONDS);
String mValue = (String) rMap.get("name");

list

Redis 列表 List 是简单的字符串列表，按照插入顺序排序。你可以添加一个元素到列表的头部（左边）或者尾部（右边）。List 可用于最新消息排行，比如朋友圈的时间线) ，或者消息队列。

Redisson 将 Redis 中的字符串数据结构封装成了 RList

Copy
final RList<Object> rList = redissonClient.getList("l1")；
rList.add("tom");
rList.add("king");
rList.add("jack");
rList.expire(500,TimeUnit.MILLISECONDS);
String lValue = (String) rList.get(1);

set

Redis 的 Set 是 string 类型的无序集合。集合是通过哈希表实现的，所以添加，删除，查找的复杂度都是 O (1)。Set 适用于处理共同好友，或利用唯一性，统计访问网站的所有独立 ip，以及好友推荐时，根据 tag 求交集，大于某个阈值就可以推荐。

Redisson 将 Redis 中的字符串数据结构封装成了 RSet

Copy
final RSet<Object> rSet = redissonClient.getSet("s1");
rSet.add("java");
rSet.add("javascript");
rSet.expire(500,TimeUnit.MILLISECONDS);//通过key获取所有的
valueredissonClient.getSet("s1");

zset

Redis zset 和 set 一样也是 string 类型元素的集合，且不允许重复的成员。不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。zset 的成员是唯一的，但分数 (score) 却可以重复。Zset 适用于排行榜，或者带权重的消息队列

Redisson 将 Redis 中的字符串数据结构封装成了 RScoredSortedSet

Copy
RScoredSortedSet<Object> rScoredSortedSet = redissonClient.getScoredSortedSet("zs1");
rScoredSortedSet.addScore("tom",3.0);
rScoredSortedSet.addScore("king",3.5);//通过key获取所有的
valueredissonClient.getScoredSortedSet("zs1");