欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学 Redis,这些数据类型及操作命令怎么能不会?

程序员文章站 2022-04-29 08:19:03
...

  1、数据类型

  Redis key(键)的类型只能为字符串,value (值)的类型如下 5 种类型:

  string —— 字符串hash —— 无序散列表list —— 列表set —— 无序集合zset —— 有序集合

  2、操作命令

  说明这里的命令只是 Redis 命令的冰山一角,更多命令的详细介绍可以参看这里 Redis 中文网的命令中心,重要!!!

  2.1 string

  对整个字符串或者字符串的其中一部分执行操作,对整数和浮点数执行自增或者自减操作。

  set key value 添加或修改(对已存在的键)单个字符串

  set name xiaoming

  get key 获取(查询)键对应的字符串值

  get name

  del key 删除键和对应的值

  del key

  mset key value [key value ...] 添加或修改(已存在的键)多个字符串

  mset user1 xiaoming user2 xiaohong

  mget key [key ...] 获取(查询)多个键对应的字符串值

  mget user1 user2

  incr key 对整数型的字符串加 1

  set age 21

  incr age // 22

  get age // 22

  decr key 对整数型的字符串减 1

  set age 22

  decr age // 21

  get age // 21

  append key value 追加值

  set name aaa

  get name // aaa

  append name bbb

  get name // aaabbb

  2.2 hash

  ?于存储对象,对象的结构为属性、值,添加、获取、移除单个键值对 获取所有键值对 检查某个键是否存在。

  hset key field value 设置单个属性

  hset user name xiaoming

  hget key field 获取单个属性的值

  hget user name // xiaoming

  hmset key field1 value1 field2 value2 ... 设置多个属性

  hmset user name xiaoming age 21

  hmget key field1 field2 ... 获取多个属性的值

  hmget user name age

  hkeys key 获取指定键所有的属性

  hkeys user

  hvals key 获取指定键所有属性的值

  hvals user

  hdel key field1 [field2 ...] 删除指定的属性及属性对应的值

  hdel user name

  2.3 list

  列表的元素类型为 string,按照插入顺序排序,从两端压入或者弹出元素,读取单个或者多个元素进行修剪,只保留一个范围内的元素。

  lpush key value1 [value2 ...] 从左端插入数据

  lpush nums1 0 1 2

  rpush key value1 [value2 ...] 从右端插入数据

  rpush nums2 0 1 2

  lrange key start stop 获取键对应列表指定范围的元素,start 为开始索引(索引从左侧开始,第一个元素下标为 0),stop 为结束索引(索引可以是负数,表示从右侧开始)

  lrange nums1 0 -1 // 2 1 0

  lrange nums2 0 -1 // 0 1 2

  linsert key before|after pivot value 在 pivot 的前或后插入元素

  linsert key nums1 before 2 3

  lrange nums1 0 -1 // 3 2 1 0

  lset key index value 设置(修改)指定索引位置的元素值

  lset nums2 1 11

  lrange nums2 0 -1 // 0 11 2

  lrem key count value 删除键对应列表前 count 次出现的值(count > 0 表示从头往尾删除,count

  lpush ab a b a a b a b b

  lrange ab 0 -1 // b b a b a a b a

  lrem ab 2 b // a b a a b a

  2.4 set

  无序集合的元素为 string,元素具有唯一性,不重复,对集合没有修改操作,添加、获取、移除单个元素 检查一个元素是否存在于集合中 计算交集、并集、差集 从集合里面随机获取元素。

  sadd key member [member ...] 添加元素到无序集合

  sadd set1 0 0 1 1 2 2

  smembers key 查看无序集合中的元素成员

  smembers set1 // 0 1 2

  scard key 查看无序集合中的元素数量

  scard set1 // 3

  srem key member [member ...] 删除指定游戏卖号平台无序集合中的元素成员

  srem set1 1

  sinter key [key ...] 计算交集

  sadd set1 0 1 2

  sadd set2 1 2 3

  sinter set1 set2 // 1 2

  sinterstore destination key [key] 计算交集并将交集值存储在 destination 集合中

  sadd set1 0 1 2

  sadd set2 1 2 3

  sinterstore set1_inter_set2 set1 set2

  smembers set1_inter_set2 // 1 2

  sunion key [key ...] 计算并集

  sunion set1 set2 // 0 1 2 3

  sunionstore destination key [key] 计算并集并将并集值存储在 destination 集合中

  sadd set1 0 1 2

  sadd set2 1 2 3

  sunionstore set1_union_set2 set1 set2

  smembers set1_union_set2 // 0 1 2 3

  sdiff key [key ...] 计算差集

  sdiff set1 set2 // 0

  sdiff set2 set1 // 3

  sdiffstore destination key [key] 计算差集并将差集值存储在 destination 集合中

  sadd set1 0 1 2

  sadd set2 1 2 3

  sdiffstore set1_diff_set2 set1 set2

  sdiffstore set2_diff_set1 set1 set2

  smembers set1_diff_set2 // 0

  smembers set2_diff_set1 // 3

  2.5 zset

  有序集合的元素为 string,元素具有唯一性,不重复,每个元素都会关联一个 double 类型的 score 表示权重,通过权重来给元素排序,没有修改操作,添加、获取、删除元素 根据分值范围或者成员来获取元素 计算一个键的排名。

  zadd key score member [score member …] 添加元素到有序集合

  zadd rank 10 xiaoming 9 xiaohong 8 xiaoguang 7 xiaohei 6 xiaozhi 5 xiaozhang

  zrange key start stop 查看有序集合中所有元素(默认是升序排序)

  zrange rank 0 -1 // xiaozhang xiaozhi xiaohei xiaoguang xiaohong xiaoming

  zcard key 查看有序集合中的元素数量

  zcard rank // 6

  zrangebyscore min max 查看有序集合中 score 在 min 和 max 之间的元素

  zrangebyscore 6 8 // xiaozhi xiaohei xiaoguang

  zscore key member 查看有序集合中指定元素的 score 值

  zscore rank xiaohei // 7

  zrem key member [member …] 删除有序集合中指定元素及对应的 score 值

  zrem rank xiaohei xiaozhang

  zremrangebyscore key min max 删除有序集合中指定返回 score 值的元素

  zremrangebyscore rank 7 8

  2.6 key 命令

  查找键的相关命令(对上面的类型都适用),参数支持正则表达式。

  keys pattern 根据规则查找键

  keys * // 查找所有的键

  keys a* // 查找 a 开头的键

  exists key [key ...] 判断键是否存在,如果存在返回 1,不存在返回 0

  exists name

  type key 查看键对应的 value 类型

  type name

  del key [key ...] 删除键和键对应的值

  del name

  expire key seconds 设置键的过期时间,单位为秒

  set name xiaoming

  get name // xiaoming

  expire name 1

  get name // nil

  ttl key 查看剩下的有效时间,单位为秒

  set name xiaoming

  get name // xiaoming

  expire name 100

  ttl name // 98

  ttl name // 97 有效时间逐渐减少