redis入门之数据结构(二)

Redis 数据类型

Redis 不仅仅是简单的 key-value 存储器,同时也是一种 data structures server。传统的 key-value 是指支持使用一个 key 字符串来索引 value 字符串的存储,而 Redis 中,value 不仅仅支持字符串,还支持更多的复杂结构,包括列表、集合、哈希表等。

strings

字符串是最基本、最常用的Redis值类型
Redis 字符串是二进制安全的,这意味着一个 Redis 字符串能包含任意类型的数据,例如: 一张经过 base64 编码的图片或者一个序列化的 Ruby 对象。通过这样的方式,Redis 的字符串可以支持任意形式的数据,但是对于过大的文件不适合存入 redis,一方面系统内存有限,另外一方面字符串类型的值最多能存储 512M 字节的内容。
redis-cli strings 基本操作:

  • set key value [EX seconds] [PX milliseconds] [NX|XX] 添加一个key-value数据(NX: set 命令只有在没有相同 key 的情况下成功;XX:在有相同 key 值的情况下成功)
  • get key 获取key对应的value
  • incr key key对应的值+1
  • decr key key对应的值-1
  • incrby/decrby key increment/decrement key对应的值+/- n
  • mset key value [key value …] 一次性完成多个key-value的对应关系
  • mget key [key …] 一次性获取多个key的值,返回value数组
    在这里插入图片描述

lists

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),lpush 命令插入一个新的元素到头部,而 rpush 命令插入一个新元素到尾部。当这两个操作中的任一操作在一个空的 Key 上执行时就会创建一个新的列表。相似的,如果一个列表操作清空一个列表,那么对应的 key 将被从 key 空间删除。
push 一类的命令的返回值为 list 的长度。

  1. redis-cli lists 基本操作:
  • lpush key value [values …] 往列表头部(左边)插入数据,结果为倒序列表
  • lrange key start stop 0表示 list 开头第一个,-1 表示 list 的倒数第一个,即最后一个。-2 则是 list 的倒数第二个,以此类推。
  • rpush key value [values …] 往列表尾部(右边)插入数据,结果为正序列表
  • del key [key] 删除一个key
  • lpop/rpop key 获取头部/尾部的第一个元素并删除该元素
    一个列表最多可以包含 4294967295(2 的 32 次方减一)个元素,这意味着它可以容纳海量的信息,最终瓶颈一般都取决于服务器内存大小。
    在这里插入图片描述
  1. 阻塞操作
  • blpop/brpop key [key …] timeout 阻塞获取头部/尾部的第一个元素并删除该元素(list不存在时阻塞超时后返回nil)
    在这里插入图片描述
  1. 使用场景
    List 元素是线性有序的,适合用来存储聊天记录等顺序结构的数据。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章