文档章节

redis04列表

AllenOR灵感
 AllenOR灵感
发布于 2017/09/10 01:17
字数 465
阅读 13
收藏 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灵感
粉丝 11
博文 2635
码字总数 83001
作品 0
程序员
私信 提问
Bootstrap提供了六种列表效果

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

9秒教育
2015/12/03
345
0
python列表、切片和元组操作示例

python列表、切片和元组操作示例 列表: 列表是指一组有序的数据集合 列表中可以包含不同类型的对象 列表可以由[]或工厂函数创建 支持下标及切片操作 定义列表:列表的命名规则和变量等同,定...

高好亮
2016/07/26
0
0
redis——列表(list)

Redis列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边),一个列表最多可以包含2^32-1个元素。 list列表命令: 1、BLPOP list1 [list2] tim...

Allenyan
05/12
0
0
python数据类型-列表创建和操作

列表创建和操作 a) 创建列表 b) 基本操作 c) 遍历 与其说 列表 它是一个数据类型,用起来 更像一个灵活多变的数据存储方案 创建列表 创建列表例子 player = 'mao 80 50' mao = '100 60 0' zo...

新网学会
2017/12/08
0
0
python3测试工具开发快速入门教程2数据结构3列表

快速入门 Python有一些复合数据类型,用于组合值。最常用的是 list(列表)),为中括号之间的逗号分隔的值。列表的元素可以是多种类型,但是通常是同一类型。 像字符串和其他序列类型,列表可支...

人工智能python自动化测试
09/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《Maven官方文档》-Maven依赖机制简介

《Maven官方文档》-Maven依赖机制简介 原文地址 译者:Tyrian 依赖机制是Maven最为用户熟知的特性之一,同时也是Maven所擅长的领域之一。单个项目的依赖管理并不难, 但是当你面对包含数百个...

tantexian
15分钟前
1
0
基于 Docker 快速部署多需求 Spark 自动化测试环境

引言 在进行数据分析时,Spark 越来越广泛的被使用。在测试需求越来越多、测试用例数量越来越大的情况下,能够根据需求快速自动化部署 Spark 环境、快速完成所有测试越来越重要。 本文基于 ...

呐呐丶嘿
32分钟前
2
0
支付宝APP支付之查看支付宝商户ID

1、登录支付宝蚂蚁金服开放平台 2、查看账号详情,选择合作伙伴管理,账户管理,查看角色身份,此处的PID就是商户ID 3、点击秘钥管理,可查看绑定的相关应用及其APPID等信息

Code辉
35分钟前
2
0
崛起于Springboot2.X之通讯WebSocket(40)

技术简介:Springboot2.0.3+freemaker+websocket 1、添加pom依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo......

木九天
44分钟前
1
0
Java常用四大线程池用法以及ThreadPoolExecutor详解

为什么用线程池? 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率 2.线程并发数量过多,抢占系统资源从而导致阻塞 3.对线程进行一些简单的管理 在Java中...

孟飞阳
46分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部