redis 五大数据结构实战

想灵活使用redis么?看这篇文章就够了!!

起因:某项目要求将mongo缓存全部移至redis,好吧,后来发现,需求理解错了

项目举例

对Equip,point等百万条记录进行增删该查

在redis中建一个类似标准sql的equip表

public class Equip {
	String id;
	String name;
	String value;
	boolean isAlarm;
// set get toString 关联关系 略
}

基础薄弱的码友请参考REDIS API,一起观看

redis五大数据结构选择

字符串

id作为key ,equip转json 作为value X

redis 五大数据结构实战_第1张图片

equip 作为key,整个equip表的记录作为json存 X

 

哈希表

每个对应属性只能有一个值

X

redis 五大数据结构实战_第2张图片

 

equip. + id作为哈希表名 V

优点:更新字段,删除单条,查询方便

缺点:批量添加,批量删除,分页获取,不能排序

redis 五大数据结构实战_第3张图片

id作为field,equip转json作为value

 

 

列表

equip转json作为value V

优点:批量添加 删除整表 分页获取

缺点:更新,删除,查询

 

 

集合

与列表list类似,区别集合不重复无序,列表重复有序(插入顺序)

 

有序集合

时间戳作为score,equip转json作为memberV

优点:批量添加 删除整表 分页获取 根据时间戳排序 时间段获取

缺点:更新 删除 查询 性能

 

 批量操作可以通过redis管道技术进行优化,项目中用哈希表和有序集合

 

redis与mongo区别

redis

单线程 不能模糊查询  存储数据的格式越简单越好 

mongo

多线程 查询丰富 

结论:其实还是mongo好用,毕竟实际项目数据格式比较复杂

Redis推荐场景:竞价,排行榜,定位 经纬度等只需要数值的场景

 

 

你可能感兴趣的:(SQL)