文档章节

redis04列表

AllenOR灵感
 AllenOR灵感
发布于 2017/09/10 01:17
字数 465
阅读 2
收藏 0

到目前为止,不论是字符串还是哈希,当涉及到多条相同性质的数据存储时,采用的办法是在键上通过冒号和数字来标识它们的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的列表很接近,所以我就不展开记录了。

参考

本文转载自:http://www.jianshu.com/p/a68cc436ca65

共有 人打赏支持
AllenOR灵感
粉丝 10
博文 2634
码字总数 82983
作品 0
程序员
Bootstrap提供了六种列表效果

列表--简介 在HTML文档中,列表结构主要有三种:有序列表、无序列表和定义列表。具体使用的标签说明如下: 无序列表 <ul> <li>…</li> </ul> 有序列表 <ol> <li>…</li> </ol> 定义列表 <dl>......

9秒教育
2015/12/03
345
0
OpenGL显示列表

 OpenGL显示列表(Display List)是由一组预先存储起来的留待以后调用的OpenGL函数语句组成的,当调用这张显示列表时就依次执行表中所列出的函数语句。前面内容所举出的例子都是瞬时给出函数...

teacheryang
2010/11/19
0
0
Python基础 列表介绍、使用

第3章 学习目标: 列表是什么以及如何使用列表元素。列表让你能够在一个地方存储成组的信息,其中可以只包含几个元素,也可以包含数百万个元素。列表是新手可直接使用的最强大的Python功能之...

平步清云
07/21
0
0
走进Python世界(五)数据类型 4. 序列类型-列表(List)

什么是列表 列表是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目 列表是可变的数据类型 列表的组成:用[]表示列表,包含了多个以逗号分隔开 数字,或者字符串。 列表...

Garrry
2015/07/24
0
0
列表

一、简介 列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示: ...

ryan_bai
2017/11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Redis常用命令

keys 我把这个命令放在第一位,是因为笔者曾经做过的项目,以及一些朋友的项目,都因为使用keys这个命令,导致出现性能毛刺。这个命令的时间复杂度是O(N),而且redis又是单线程执行,在执行k...

谢思华
41分钟前
2
0
关于css宽度分离

所谓宽度分离就是width 属性不与影响宽度的 padding/border(有时候包括 margin)属性共存 例如: .box{width:200px;padding:20px;border:1px solid;} 为何要做宽度分离 一说到分离就是为了好...

莫西摩西
51分钟前
1
0
Linux常用命令

###############常用命令说明############################## cat /proc/version 显示内核的版本 mv dir1 new_dir 重命名/移动 一个目录 rm -rf a.txt b.txt c.txt 删除多个文件 chmod 777 ......

lyle_luo
58分钟前
3
0
全国地区代码科普

全国地区代码表 天津市 地区代码 地区名称 1100 天津市 辽宁省 地区代码 地区名称 2210 沈阳市 2210 法库县 2210 康平县 2210 辽中县 2210 新民市 2220 大连市 2222 普兰店市 2223 庄河市 22...

恋码之子
59分钟前
1
0
DbForge Schema Compare for MySQL入门教程:生成比较报告

【dbForge Schema Compare for MySQL下载】 当架构比较完成后,您可以生成比较报告以保留架构更改的记录。 1. 在“Comparison” 菜单中,单击“Generate Comparison Report” 。将打开“Gen...

Miss_Hello_World
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部