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

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

 

哈希表

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

X

 

equip. + id作为哈希表名 V

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

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

id作为field,equip转json作为value

 

 

列表

equip转json作为value V

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

缺点:更新,删除,查询

 

 

集合

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

 

有序集合

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

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

缺点:更新 删除 查询 性能

 

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

 

redis与mongo区别

redis

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

mongo

多线程 查询丰富 

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

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

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值