Redis自学笔记:5.实践】的更多相关文章

第5章实践 5.3 python与redis 5.3.1安装 pip install redis 5.3.2使用方法 自己补充内容:Ubuntu下redis开启远程连接 打开redis配置:sudo vi /etc/redis/redis.conf 注释掉"bind 127.0.0.1",或者修改为"bind 0.0.0.0" 重启redis服务:sudo /etc/init.d/redis-server restart import redis r = redis…
3.6有序集合类型 3.6.1介绍 在集合类型基础上,为集合中每个元素都关联了一个分数,故可以获得 分数最高(最低)的前N个元素,可以获得指定范围内的元素等 有序集合中每个元素不同,但它们的分数却可以相同 有序集合和列表相同点: 都是有序的 都可以获得某一范围元素 有序集合和列表区别: 列表是通过双链表实现的 有序集合是使用散列表和跳跃表实现的 列表中不能简单地调整某个元素 但是集合可以(通过更改这个元素的分数) 有序集合要比列表更耗费内存 3.6.2命令 增加元素 zadd key score…
3.5集合类型 3.5.1介绍 在集合中的每个元素都是不同的,且没有顺序 表3-4集合类型和列表类型的对比 - 集合类型 列表类型 存储内容 至多232-1个字符串 至多232-1个字符串 有序性 否 是 唯一性 是 否 集合类型在redis内部是使用值为空的散列表实现的,所有这些操作的 事件复杂度都是O(I) 3.5.2命令 增加/删除元素 sadd key member [member ...] 向集合中增加元素,如果键不存在会自动创建 如果加入的元素已经存在域集合,就会忽略这个元素 返回值…
3.4列表类型 3.4.1介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者 获得列表的某一片段. 优点:内部使用的是双向链表,所以向列表两端添加元素的时间复杂度为O(1),获取 越接近两端的元素速度越快. 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别 指向直接后继和直接前驱 时间复杂度是同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法 乃至程序的效率.O(1)为常数阶. 缺点:通过索引访问元素比较慢 所以列表适合的应用于: 1.…
3.3散列类型 3.3.1介绍 散列类型不能嵌套其他数据类型,一个散列类型可以包含至多232-1个字段 散列类型适合存储对象:使用对象类别和ID构成键名,使用字段表示对象的数据, 而字段值则存储属性值. 图3-5使用散列类型存储汽车对象结构图 键 字段 字段值 car:2 color 白色 car:2 name 奥迪 car:2 price 90万 3.3.2命令 赋值与取值 hset key field value 单个字段赋值 hget key field 单个字段取值 hmset key…
3.2字符串类型 实际上redis不只是数据库,更多的公司和团队将redis用作缓存和 队列系统 3.2.1介绍 字符串类型是redis最基本的数据类型,它能存储任何形式的字符串, 包括二进制数据.你可以用其存储用户的邮箱.JSON化的对象甚至 是一张图片. 一个字符串类型键允许存储的数据的最大容量是512M 字符串类型是其他4中数据类型基础,其他数据类型和字符串类型 的差别是从某种角度来说只是组织字符串的形式不同.例如, 列表类型是以列表的形式组织字符串 集合类型是以集合的形式组织字符串 3.…
4.4消息通知 4.4.1任务队列 传递任务的队列.与任务队列进行交互的实体有两类,一类是生产者,一类是消费者. 生产者将需要处理的任务放入任务队列中,二消费者不断从任务队列中读入任务 信息并执行. 优点: 松耦合 生产者和消费者无需知道彼此实现的细节 易于扩展 消费者可以有多个,而且可以分布在不同服务器 4.4.2使用redis实现任务队列 3.4.2节中的lpush和rpop|lpop命令可以实现队列概念,伪代码: # 无线循环读取任务队列的内容 loop $task = rpop queu…
4.3排序 4.3.1有序集合的集合操作 有序集合没有zinter和zunion命令,使用其他命令实现方法: multi zinterstore tempKey ... zrange tempKey ... del tempKey exec 4.3.2 sort命令 sort key [alpha] [asc|desc] [limit offset count] sort命令可以对列表类型.集合类型和有序集合类型进行排序,并且完成与 关系数据库中连接查询相类似的任务 127.0.0.1:6379…
4.2过期时间 **4.2.1命令介绍* 在redis中使用 expire 命令设置一个键的过期时间后redis会自动删除它. expire key seconds (seconds单位是秒,必须是整数) 返回值是1表示设置成功,返回0则表示键不存在或设置失败 查看见还有多久被删除: ttl key 返回值是键的剩余时间,-1表示该键没有设置过期时间,-2表示该键不存在 取消键的过期事件设置: persist key 为该键重新赋值也会清除键的过期时间 pexpire key msec (mse…
第4章:进阶 4.1事务 4.1.1概述 redis中的事务是一组命令的集合 事务同命令一样都是redis的最小执行单位,一个事务中的命令要么都执行, 要么都不执行 事务的原理是先将一个事务的命令发送给redis,然后再让redis依次执行 这些命令,例如: 127.0.0.1:6379> multi OK 127.0.0.1:6379> sadd 'user:1:following' 2 QUEUED 127.0.0.1:6379> sadd 'user:2:following' 1…