02.`redis`的常用数据类型以及操作

1. 数据类型
  1. redis官网
  2. 数据类型
    1. redis 常用的数据类型是种,但是它支持的数据类型不止五种,如图所示

      redis的数据类型

    2. 常用的数据类型

      常用的数据类型说明
      string字符串类型,字符串的值最大长度为 512 M
      hash散列类型,对应JavaMap
      list列表类型,对应JavaList,列表的最大长度为2^32-1个元素,大约40亿
      set集合类型
      zset有序集合类型(根据设置的 score 进行排序)
2. 常用数据类型的操作
  1. 通用

    # 获取数据库所有的键
    keys *
    
    # 判断某个键是否存在,存在返回 1,不存在返回 0
    exists key
    
    # 获取键的类型(string, hash, list,set, zset)
    type key
    
    # 设置key的存活时间,单位为秒
    expire key 数值
    
    # 查看 key 的存活时间
    ttl key
        
    # 删除键,多个键用 , 隔开
    del key1, key2, key3……
    
    # 删除所有的键
    flushall
    
  2. string

    # 设置值,如果键存在则覆盖
    set key value
    
    # 将对应的键的值递增1,即+1,注意该值必须是数字
    incr key
    
    # 将对应的键的值递减1,即-1,注意该值必须是数字
    decr key
    
    # 根据键取值
    get key
    
    # 如果不存在则设置(redis设置分布式锁)
    setnx key value
    

    string 操作

  3. list

    # 往key集合的左侧设置值,并返回这是第几个元素
    lpush key value
    
    # 往key集合的右侧设置值,并返回这是第几个元素
    rpush key value
    
    # 取key集合中索引在[start, end]的值
    # lrange key 0 -1  查询key集合所有的值
    lrange key start end
    
    # 获取key集合中索引为 index 的元素
    lindex key index
    
    # 设置key集合中索引为 index 的值为 value
    lset key index value
    
    # 获取key集合的长度 
    llen key
    
    # 移除并返回key集合的 首元素
    lpop key
    
    # 移除并返回key集合的 尾元素
    rpop key
    
    # 移除列表中 count 个值为 value 的数据并返回删除了几个数据
    # count 为 0 移除所有值为 value 的数据
    lrem key count value
    
    # 保留索引在 [start, end] 之间的元素,其他全部删除
    ltrim key start end
    

    list 的操作-1

    list 的操作-2

    list 的操作-3

  4. set

    # 往名为key的集合中添加元素,返回添加成功的个数,元素间空格隔开
    sadd key member1 member2 member3 ...
    
    # 返回名为key的集合中所有的元素
    smembers key
    
    # 删除名为key的集合的元素,返回删除成功的个数,元素间空格隔开
    srem key member1 member2 ...
    
    # 返回名为key的集合中的个数
    scard key
    
    # 判断名为key的集合中是否存在member,存在则返回1,不存在返回0
    sismember key member
    
    # 从key集合中随机返回一个值
    srandmember key
    
    # 随机移除key集合中的元素,并返回该元素
    spop key
    
    # 将source集合中的member元素移动到名为target的集合中
    smove source target member
    
    # 对key1 key2两个集合求交集
    sinter key1 key2
    
    # 对key1 key2两个集合求并集
    sunion key1 key2
    
    # 对key1 key2差集运算,返回结果数,并将结果存储到集合target中
    sdiffstore target key1 key2
    
    # 对key1 key2交集运算,返回结果数,并将结果存储到集合target中
    sinterstore target key1 key2
    
    # 对key1 key2并集运算,返回结果数,并将结果存储到集合target中
    sunionstore target key1 key2
    

    set 相关操作

  5. zset

    # score 必须为数值(可以为负数),根据score从小到大进行排序
    # 添加元素到key集合,如果value存在则修改score
    zadd key score1 value1 score2 value2 ...
    
    # 获取key集合中value元素的分数score,value不存在返回 null
    zscore key value
    
    # 获取key集合中索引在 [start, end] 的所有元素
    # zrange key 0 -1 获取所有
    zrange key start end
    
    # 获取key集合中索引在 [start, end] 的所有元素及其分数
    zrange key start end withscores
    
    # 获取key集合中元素的个数
    zcard key 
    
    # 获取分数在 [min, max] 范围内的元素的个数
    zcount key min max
    
    # 获取分数在 [min, max] 范围内的所有元素,根据分数排序
    zrangebyscore key min max
    
    # 查询key集合中分数在 [min, max] 范围内的所有元素,分页获取索引为index,条数为rows的数据
    zrangebyscore key min max limit index rows
    
    # 获取 value 在 key 集合中的下标
    zrank key value 
    
    # 删除key集合的元素,多个元素用 空格 隔开
    zrem key value1 value2 ...
    
    # 将key集合的元素倒序排列后,然后取索引在 [begin, end] 范围内的元素
    zrevrange key begin end
    
    # 移除 key 集合分数在 [min, max] 范围内的元素,并返回移除的个数
    zremrangebyscore key min max
    
    # 移除 key 集合索引在 [begin, end] 之间的元素
    zremrangebyrank key begin end
    

    zset 操作-1

    zset 操作-2

  6. hash

    # 设置值,如果存在相同的 key,将会覆盖对应的 value
    # map 是这个 hash 的 key 键名,对应 java 的 map 的变量名
    # key value 是 map 里面的键值对
    # 多个键值对用 空格 隔开
    hset map key1 value1 key2 value2 ... 
    
    # 获取名为 map 的 hash 集合中的名为 key 的 value 值
    hget map key
    
    # 判断名为 map 的 hash 集合中的 key 是否存在
    # 存在返回1,不存在返回0
    hexists map key
    
    # 获取名为 map 的 hash 集合中所有的 key
    hkeys map
    
    # 获取名为 map 的 hash 集合中的所有字段 value 值
    hvals map
    
    # 获取名为 map 的 hash 集合中所有的元素(key 跟 value)
    hgetall map
    
    # 获取名为 map 的 hash 集合所有字段的数量
    hlen map
    
    # 删除 map 集合中的 key 字段
    hdel map key
    
    # 如果名为 map 的 hash 集合中不存在名为 key 的键值对,则设置值
    hsetnx map key value
    

    hash 操作-1

    hash 操作-2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值