redis04列表
redis04列表
AllenOR灵感 发表于5个月前
redis04列表
  • 发表于 5个月前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

到目前为止,不论是字符串还是哈希,当涉及到多条相同性质的数据存储时,采用的办法是在键上通过冒号和数字来标识它们的ID(例如下面这段代码);但是当需要完成一个分页功能(也就是对一个范围段数字进行切片)时,就无法满足这种需求。解决分片的问题只能利用列表类型的特性。

字符串类型

r.set('str_computer:1', json.dumps({'owner': 'john', 'cpu': 'i5', 'hd': 'ssd', 'mem': '8G'}))
r.set('str_computer:2', json.dumps({'owner': 'anna', 'cpu': 'i5', 'hd': 'ssd', 'mem': '8G'}))
r.set('str_computer:3', json.dumps({'owner': 'eric', 'cpu': 'i5', 'hd': 'ssd', 'mem': '8G'}))
...
...
r.set('str_computer:1000', json.dumps({'owner': 'jack', 'cpu': 'i5', 'hd': 'ssd', 'mem': '8G'}))

哈希类型

r.hmset('hash_computer:1', {'owner': 'john', 'cpu': 'i5', 'hd': 'ssd', 'mem': '8G'})
r.hmset('hash_computer:2', {'owner': 'anna', 'cpu': 'i5', 'hd': 'ssd', 'mem': '8G'})
r.hmset('hash_computer:3', {'owner': 'eric', 'cpu': 'i5', 'hd': 'ssd', 'mem': '8G'})
...
...
r.hmset('hash_computer:1000', {'owner': 'jack', 'cpu': 'i5', 'hd': 'ssd', 'mem': '8G'})

在redis中列表是最为核心的类型,由于redis本身不支持深度条件查找(不像mongodb或关系型数据库那样可以利用内置语法来查询到多条数据的过滤条件语句),因此在redis中涉及到频繁更新或读取的字段一般都会拆分开放在列表中以id进行记录;例如分页、评论、关注列表、粉丝列表、动态统计信息、消息队列。

缺点
由于没有外键的原因,一般的做法都是使用列表通过id来和其他类型数据的ID进行一一对应,所以当删除某条字符串或哈希类型的数据时,也要单独去删除列表中对应的id。

最后
redis列表的操作命令和python的列表很接近,所以我就不展开记录了。

参考

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 6
博文 2139
码字总数 82983
×
AllenOR灵感
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: