乐趣区

关于redis:Redis第五章节8种数据类型

目录

  • 一、Redis 对 key 的操作
  • 二、五种数据类型

    • String 类型
    • List(汇合)
    • Set(汇合)
    • Hash(哈希)
    • Zset(有序汇合)
  • 三、三种非凡数据类型

    • geospatial(地理位置)
    • hyperloglog(长处:占用内存小)
    • Bitmap(位图)

一、Redis 对 key 的操作

  • 判断 key 是否存在:exists key_name
  • 设置 key 的过期工夫:expire key_name [过期的工夫值](number 类型)
  • 查看 key 的过期工夫:ttl key_name
  • 获取所有的 key: keys *

二、五种数据类型

String(字符串)

字符串类型操作:

  • 设置值:set key_name value
  • 获取值:get key_name
  • 追加字符串,如果以后的 key 不存在就会创立一个新的 key: append key_name value
  • 获取字符串长度:strlen key_name
  • 截取字符串:getrange key_name [start index] [end index]
  • 指定的字符串笼罩给定 key 所贮存的字符串值,笼罩的地位从偏移量 offset(数字类型) 开始:setrange key_name offset value
  • 为指定的 key 设置值及其过期工夫,如果 key 曾经存在,setex 命令将会替换旧的值: setex key_name [expiration time] value
  • 先获取值再设置值:getset key_name value

数字类型操作:

  • number 数字类型自增 1:incr key_name
  • number 数字类型减 1:decr key_name
  • 减少指定的值:incrby key_name [具体的值]number 类型
  • 缩小指定的值:decrby key_name key_name [具体的值]number 类型

批量操作:

  • 批量设置值:mset key_name1 value1 key_name2 value2 key_name3 value3
  • 批量获取值:

    • 形式 1: mget key_name1 key_name2 key_name3
    • 形式 2:msetnx key_name1 key_name2 key_name3 // 这个是原子性操作,要么全副胜利,要么全副失败。

List(汇合)

  • 设置值:

    • 右边:lpush key_name value
    • 左边:rpush key_name value
  • 获取值:

    • 右边:

      • lrange key_name [start index] [end index]
      • lrange key_name 0 -1 获取所有的元素
  • 移除数据:

    • 右边:lprop key_name
    • 左边:rprop key_name
  • 依据参数 count 的值,移除列表中与参数 value 相等的元素:

    • lrem key_name [count] value

      • count > 0:从表头开始向表尾搜寻,移除与 value 相等的元素,数量为 count。
      • count < 0:从表尾开始向表头搜寻,移除与 value 相等的元素,数量为 count 的绝对值。
      • count = 0: 移除表中所有与 value 相等的值。
  • 依据索引获取元素:lindex key_name [index]
  • 获取汇合的长度:llen key_name
  • 替换列表中指定下标的值,如果不存在就会报错:lset key_name [index] value
  • 在列表的元素前或者后插入元素。当指定元素不存在于列表中时,不执行任何操作。当列表不存在时,被视为空列表,不执行任何操作。如果 key 不是列表类型,返回一个谬误: linsert key_name [before] || [after] oldvalue newvalue

Set(汇合)

  • 设置值:sadd key_name value
  • 获取值:smembers key_name
  • 随机从汇合中抽取数据:srandmember key_name
  • 随机从汇合中抽取指定个数的数据:srandmemer key_name [number]
  • 移除元素:srem key_name value
  • 用于移除汇合中的指定 key 的一个或多个随机元素,移除后会返回移除的元素: spop key_name
  • 判断值是否在汇合中:sismember key_name value
  • 获取汇合中的元素的个数:scard key_name
  • 汇合之间操作:

    • 将值挪动到另一个汇合中:smove oldlist newlist value
    • 差集:sidff oldlist newlist
    • 交加:sinter oldlist newlist
    • 并集:sunion oldlist newlist

Hash(哈希)

  • 设置值:

    • 形式 1:hset key_name filed1 value
    • 形式 2:hsetnx key_name filed1 value // 如果不存在则能够设置
    • 形式 3:hsetnx key_name filed1 value // 如果存在不能设置
  • 获取值:hget key_name filed1
  • 获取所有值:hgetall key_name
  • 删除汇合中某一个字段的值:hdel key_name filed1
  • 获取汇合中的元素的个数:hlen key_name
  • 判断 key 是否存在:hexists key_name
  • 获取所有的 filed: hkeys key_name
  • 获取所有的值:hvals key_name
  • 自增:hincrby key_name filed1 1
  • 自减:decrby key_name filed1 1
  • 批量操作:

    • 设置值:hmset key_name filed1 value1 filed2 value2
    • 获取值:hmget key_name filed1 filed2

Zset(有序汇合)

  • 设置值(number:排序的标识位,这个能够反复):zadd key_name [number] value
  • 设置多个值(number:排序的标识位,这个能够反复): zadd key_name [number] value2 [number] value3
  • 获取值:zrange key_name 0 -1
  • 排序:zrangebysocre key_name -inf +inf
  • 移除元素:zrem key_name value
  • 获取汇合中元素的数量:zcard key_name
  • 获取指定区间的成员的数量:zcount key_name [start index] [end index]

三、三种非凡数据类型

geospatial(地理位置)

  • 增加城市的地位:geoadd china:city 116.40 39.90 beijing
  • 获取指定城市的经纬度:geopos china:city beijing chongqing
  • 获取两人之间的间隔:geodist china:city beijing shanghai km
  • 获取指定半径范畴之内的坐标:georadius china:city 110 30 1000 km
  • 依据元素寻找元素:georeadiusbymember china:city beijing 1000 km

hyperloglog(长处:占用内存小)

  • 设置值:PFadd key_name value1 value2 value3 value4 value5 value6
  • 获取数量:PFCOUNT key_name
  • 合并两个汇合:PFMERGE 新汇合 汇合 2 汇合 3

Bitmap(位图)

  • 记录周一到周五的打卡:setbit sign 0 1 // 0 是周几 1 是否打卡
  • 查看某一天是否打卡:gitbit sign 3
  • 统计打卡的天数:bitcout sign
退出移动版