String类型(上节回顾)

List 类型

help @list查看帮助


可以用List类型实现一个栈:
lpush k1 a b c d e左边push
lpop k1 a b c d e左边pop(后进先出)

可以用List类型实现一个队列:
lpush k1 a b c d e左边push
rpop k1 a b c d e右边pop(先进先出)

获取List中某个范围之间的所有元素(支持负向索引)
LRANGE k1 0 -1:获取整个List

所有关于List的命令:

BLPOP key [key ...] timeout (阻塞,单播队列)删除并获取列表中的第一个元素,或块中的第一个元素,直到有一个可用
BRPOP key [key ...] timeout 删除并获取列表中的最后一个元素,或块,直到有一个可用
BRPOPLPUSH source destination timeout 从列表中弹出一个值,推送到另一个列表并返回;或阻塞,直到可用为止
LINDEX key index 通过索引从列表中获取元素
LINSERT key BEFORE|AFTER pivot value 在列表的另一个元素之前或之后插入一个元素
LLEN key 获取列表的长度
LPOP key 删除并获取列表中的第一个元素
LPUSH key value [value ...] 在列表前添加一个或多个值
LPUSHX key value 仅当列表存在时,在列表前添加一个值
LRANGE key start stop 从列表中获取元素的范围
LREM key count value 从列表中删除元素
LSET key index value 通过索引设置列表中元素的值
LTRIM key start stop 将列表修剪到指定范围
RPOP key 删除并获取列表中的最后一个元素
RPOPLPUSH source destination 删除列表中的最后一个元素,将其添加到另一个列表并返回
RPUSH key value [value ...] 向列表追加一个或多个值
RPUSHX key value 仅当列表存在时,向列表追加一个值

HashMap 类型



help @hash

HDEL key field [field ...] 删除一个或多个散列字段
HEXISTS key field 确定散列字段是否存在
HGET key field 获取散列字段的值
HGETALL key 获取散列中的所有字段和值
HINCRBY key field increment 将哈希字段的整数值按给定的数字递增
HINCRBYFLOAT key field increment 将哈希字段的浮点值按给定的量递增
HKEYS key 获取散列中的所有字段
HLEN key 获取散列中的字段数
HMGET key field [field ...] 获取所有给定哈希字段的值
HMSET key field value [field value ...] 将多个哈希字段设置为多个值
HSCAN key cursor [MATCH pattern] [COUNT count]  递增迭代哈希字段和关联值
HSET key field value 设置散列字段的字符串值
HSETNX key field value 设置散列字段的值,仅当该字段不存在时
HSTRLEN key field 获取散列字段值的长度
HVALS key 获取散列中的所有值

业务场景:微博点赞,数量增加;收藏、详情页

Set 类型

List 是有序的(插入顺序)
Set 是乱序的,去重的

SADD key member [member ...] 向集合中添加一个或多个成员
SPOP key [count] 从集合中移除并返回一个或多个随机成员
SREM key member [member ...] 从集合中删除一个或多个成员
SDIFF key [key ...] 方向性地求差集
SUNION key [key ...] 多个set求并集
SINTER key [key ...] 多个set取交集
SDIFFSTORE destination key [key ...] 减去多个集合并将结果集存储在一个键中
SINTERSTORE destination key [key ...] 交叉多个集合并将结果集存储在一个键中
SISMEMBER key member 确定给定值是否是集合的成员
SMEMBERS key 获取集合中的所有成员
SCARD key 获取集合中的成员数
SMOVE source destination member 将成员从一个集合移动到另一个集合
SRANDMEMBER key [count] 从集合中随机获取一个或多个成员count是正数:取出一个不重复的结果集(不能超过已有集)count是负数:取出一个有可能重复的结果集(一定满足你要求的数量)人多于奖品/奖品多于人/可以重复/不能重复 不同的场景
SSCAN key cursor [MATCH pattern] [COUNT count]
SUNIONSTORE destination key [key ...] 添加多个集合并将结果集存储在一个键中

SortedSet 类型

自带元素排序;自带去重

你想怎么排序?

  • 名称
  • 含糖量(前端不展示)
  • 大小(前端不展示)
  • 价格(前端不展示)
  • 粉丝数(前端不展示)

因此,除了元素本身以外,你需要有分值这个维度,用来排序。
如果分值相同,则按照名称字典序排列。

正序?逆序?
每个元素都有自己的正负向索引


help @sorted_set

BZPOPMAX key [key ...] timeout 删除并返回得分最高的成员从一个或多个sorted set,或阻塞,直到一个是可用的
BZPOPMIN key [key ...] timeout 删除并返回分数最低的成员从一个或多个sorted set,或阻塞,直到一个是可用的
ZADD key [NX|XX] [CH] [INCR] score member [score member ...] 向sorted set中添加一个或多个成员,如果已经存在,则更新其分数
ZCARD key 获取sorted set中的成员数
ZCOUNT key min max 在给定值内对sorted set中的成员进行计数
ZINCRBY key increment member 递增sorted set中成员的分数
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] 交叉多个sorted set,并将结果sorted set存储在一个新的键中
ZLEXCOUNT key min max 计算给定字典法范围之间sorted set中的成员数
ZPOPMAX key [count] 删除并返回sorted set中得分最高的成员
ZPOPMIN key [count] 删除并返回sorted set中得分最低的成员
ZRANGE key start stop [WITHSCORES] Return a range of members in a sorted set, by index 按索引返回sorted set中成员的范围
ZRANGEBYLEX key min max [LIMIT offset count] 按分数返回sorted set中的成员范围
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 按分数返回sorted set中的成员范围
ZRANK key member 确定sorted set中成员的索引
ZREM key member [member ...] 从sorted set中移除一个或多个成员
ZREMRANGEBYLEX key min max 删除给定字典排序范围之间sorted set中的所有成员
ZREMRANGEBYRANK key start stop 删除给定索引内sorted set中的所有成员
ZREMRANGEBYSCORE key min max 删除sorted set中给定分数内的所有成员
ZREVRANGE key start stop [WITHSCORES] 按索引返回sorted set中成员的范围,分数从高到低排序
ZREVRANGEBYLEX key max min [LIMIT offset count] 按字典顺序从较高的字符串到较低的字符串,返回sorted set中的成员的范围。
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] 按分数返回sorted set中的成员范围,分数从高到低排序
ZREVRANK key member 确定sorted set中成员的索引,分数从高到低排序
ZSCAN key cursor [MATCH pattern] [COUNT count] 递增迭代sorted set元素和相关分数
ZSCORE key member 获取sorted set中与给定成员相关的分数
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] 多个sorted set求并集,分数相同时,将分数取最大/最小/平均,并将结果sorted set存储到一个新键中

ZUNIONSTORE 示例:

排序是怎么实现的?skip list 跳跃表

Redis实战(三):Redis的List、Set、Hash、sorted_set、skip list相关推荐

  1. 深入剖析Redis系列(三) - Redis集群模式搭建与原理详解

    前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...

  2. Redis实战之Redis + Jedis

    用Memcached,对于缓存对象大小有要求,单个对象不得大于1MB,且不支持复杂的数据类型,譬如SET 等.基于这些限制,有必要考虑Redis! 相关链接: Redis实战 Redis实战之Redi ...

  3. Redis实战 - 09 Redis BitMaps 实现用户签到,统计签到次数,统计签到情况等功能

    文章目录 1. 需求分析 2. 设计思路 3. 用户签到和统计连续签到的次数 1. 签到控制层 SignController 2. 签到业务逻辑层 SignService 3. 测试 4. 按月统计用 ...

  4. redis(二)redis实战 使用redis进行文章的排序

    2019独角兽企业重金招聘Python工程师标准>>> http://www.beckbi.cn/?p=172 redis实战使用redis进行文章的排序 转载于:https://m ...

  5. 【Redis实战】Redis是什么?

      Redis(Remote Dictionary Server)是一个key-value的NoSQL产品,数据都是缓存在内存中,周期性的数据持久化.   Redis是一个开源的使用ANSI C语言编 ...

  6. Redis系列(三)-Redis哨兵模式(一篇文章让你全面的了解reids哨兵模式)

    哨兵模式概述 举一个通俗易懂的例子 有一个皇帝(master)他有2个儿子,大儿子(slave1)和小儿子(slave2).有一天皇帝离家出走了皇位空虚(master宕机),大儿子和小儿子为了争夺皇位 ...

  7. Redis实战 - 04 Redis 分布式锁应用之抢购代金券

    文章目录 1. 数据库表结构 1. 代金券表 2. 抢购活动表 3. 订单表 2. 秒杀场景的解决方案 3. 创建秒杀服务 ms-seckill 4. 代金券抢购功能开发 - 关系型数据库实现 1. ...

  8. redis之二十八 -- Redis实战:Redis 主从同步

    主从同步(主从复制)是 Redis 高可用服务的基石,也是多机运行中最基础的一个.我们把主要存储数据的节点叫做主节点 (master),把其他通过复制主节点数据的副本节点叫做从节点 (slave),如 ...

  9. redis实战:使用redis实现自动补全

    转载:http://blog.csdn.net/u011250882/article/details/48632379 如果我想输入"雄英"来找到游戏库中的所有带有这两个字的游戏, ...

  10. Redis系列(三)-Redis发布订阅及客户端编程

    阅读目录 发布订阅模型 Redis中的发布订阅 客户端编程示例 0.3版本Hredis 发布订阅模型 在应用级其作用是为了减少依赖关系,通常也叫观察者模式.主要是把耦合点单独抽离出来作为第三方,隔离易 ...

最新文章

  1. 阿里一面 京东一面+二面 | 掘金技术征文
  2. Eclipse中导入第三方源码的问题和备用解决方案
  3. TZOJ 3030 Courses(二分图匹配)
  4. python编程制作_一种Python编程创作平台的制作方法
  5. linux texmaker编译,在Ubuntu下安装和编译LaTex
  6. 非常实用的aix 6.1系统安装的教程
  7. python翻译爬虫_python 翻译爬虫
  8. arduino atmega328P MCP4725 proteus 仿真 程序
  9. CentOS 8 下载及安装
  10. 修改android模拟器位置
  11. Event Loop、宏任务和微任务(动态演示)
  12. #项目的编译和发布 #静态发布新浪云 #node服务器发布新浪云 #nodejs服务器部署数据库 #新浪云前后端结合
  13. java 修改表格颜色代码_workBook设置单元格颜色方法
  14. Machine learning techniques to enable closed-loop control in anesthesia-笔记
  15. 仰天大笑出门去 我辈岂是蓬蒿人
  16. openpose中文论文
  17. SAP中“管理/寄售移动被无值记账”提示问题分析处理实例
  18. 基于虚拟机Ubuntu系统下C语言简单编写程序
  19. Unity2D游戏学习
  20. 全球工业网络安全收入预计2028年达到244.7亿美元

热门文章

  1. POJ - 1966 Cable TV Network(最小割-最大流)
  2. CodeForces - 1168B Good Triple(思维+暴力)
  3. HDU - 1255 覆盖的面积(线段树+扫描线)
  4. python居中填充_Python代码中 如何将字符串填充为指定长度并保持原字符串居中呢?...
  5. 高精度乘法 c语言,很大的数相乘怎么办?
  6. Wiki1017(乘积最大)
  7. delphi调用windows api
  8. 玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试
  9. 如何打造不怕被嗅探的3389登陆
  10. 多线程学习(三)----死锁问题