zoukankan      html  css  js  c++  java
  • Redis数据结构---字符串

    字符串类型是Redis最基础的数据结构 ,键都是字符串类型
    其他几种数据结构都是在字符串类型基础上构建的

    字符串类型的值实际可以是字符串(简单的字符串、 复杂的字符串(例如JSON、 XML) ) 、 数字(整数、 浮点数) , 甚至是二进制(图片、 音频、 视频) , 但是值最大不能超过512MB

    常用命令:

    设置值
    set key value [ex seconds] [px milliseconds] [nx|xx]
    set命令有几个选项:
      ·ex seconds: 为键设置秒级过期时间。
      ·px milliseconds: 为键设置毫秒级过期时间。
      ·nx: 键必须不存在, 才可以设置成功, 用于添加。
      ·xx: 与nx相反, 键必须存在, 才可以设置成功, 用于更新。
    除了set选项, Redis还提供了setex和setnx两个命令,它们的作用和ex和nx选项是一样的
    
    获取值
    get key
    
    批量设置值
    mset key value [key value ...]
    
    批量获取值
    mget key [key ...]
    
    注:批量操作节约了网络开销时间,提高业务处理效率。但是要注意的是每次批量操作所发送的命令数不是无节制的,如果数量过多可能造成Redis阻塞或者网络拥塞
    
    计数(自增)
    incr key
    incr命令用于对值做自增操作, 返回结果分为三种情况:
      ·值不是整数, 返回错误。
      ·值是整数, 返回自增后的结果。
      ·键不存在, 按照值为0自增, 返回结果为1。
    除了incr命令, Redis提供了decr( 自减) 、 incrby( 自增指定数字) 、decrby( 自减指定数字) 、 incrbyfloat( 自增浮点数)
      decr key
      incrby key increment
      decrby key decrement
      incrbyfloat key increment

    不常用命令

    追加值
    append key value
    
    字符串长度
    strlen key
    
    设置并返回原值
    getset key value
    
    设置指定位置的字符
    setrange key offeset value
    
    获取部分字符串
    getrange key start end

    内部编码

    字符串类型的内部编码有3种:

    ·int: 8个字节的长整型。
    ·embstr: 小于等于39个字节的字符串。
    ·raw: 大于39个字节的字符串。

    Redis会根据当前值的类型和长度决定使用哪种内部编码实现

    典型使用场景:

    缓存功能

    计数

    共享session

    限速

    其他

    Redis没有命令空间,而且也没有对键名有强制要求( 除了不能使用一些特殊字符) 。但设计合理的键名, 有利于防止键冲突和项目的可维护性,比较推荐的方式是使用“业务名:对象名:id:[属性]”作为键名( 也可以不是分号)

  • 相关阅读:
    监控kubernetes集群的方式
    Prometheus的集群与高可用
    Grafana简单用法
    Prometheus实战之配置汇总
    Leetcode Surrounded Regions
    leetcode Spiral Matrix II
    leetcode Regular Expression Matching
    leetcode Set Matrix Zeroes
    leetcode 较难题II
    Leetcode 数独
  • 原文地址:https://www.cnblogs.com/MacoLee/p/13950033.html
Copyright © 2011-2022 走看看