Redis 字符串(String)

<1> 说明

String是Redis最基本的类型
String类型事二进制安全的,意味着Redis的String可以包含任何数据,比如jpg图片或者序列化的对象。
String是Redis 的最近本数据类型,一个字符串value 最多可以是512M

<2> 数据结构

String的数据结构为简单动态字符串(simple Dynamic String ,缩写SDS)

是可以修改的字符串,内部结构实现上类似Java的ArrayList ,采用预分配冗余空间的方式来减少内存的频繁分配。

redis只能存字符串 redis存string_数据库

如图中所示,内部为当前字符串实际分配的空间capacity一般要高于实际字符串长度len。当字符串长度小于1M时,扩容都是加倍现有的空间,如果超过1M,扩容时一次只会多扩1M的空间。需要注意的是字符串最大长度为512M

<3>常见命令

  1. 加入数据命令
    set < key> < value>
  2. redis只能存字符串 redis存string_字符串_02

  3. 设置相同的key ,会覆盖原来的数据
  4. redis只能存字符串 redis存string_缓存_03

  5. 根据key取值
    get < key>
  6. 追加数据
    append < key> < value>
  7. redis只能存字符串 redis存string_redis只能存字符串_04

  8. 获取值的长度
    strlen < key>
  9. redis只能存字符串 redis存string_redis_05

  10. 只在key不存在时,设置key的值
    setnx < key> < value>
  11. redis只能存字符串 redis存string_redis只能存字符串_06

  12. 将key中存储的数字值减一
    decr < key>
  13. redis只能存字符串 redis存string_数据库_07

  14. 将key中存储的数字值加一
    incr < key>
  15. redis只能存字符串 redis存string_缓存_08

  16. 将key中共存储的数字值增减,自定义步长
    incrby < key> 3 (增加)
  17. redis只能存字符串 redis存string_字符串_09

  18. decrby < key> 4 (减少)
  19. redis只能存字符串 redis存string_redis_10

  20. 同时设置一个过着多个key-value
    mset < key1> < value1> < key2> < value2>…
  21. redis只能存字符串 redis存string_数据库_11

  22. 同时获取一个或者多个value
    mget < key1> < key2> …
  23. redis只能存字符串 redis存string_redis只能存字符串_12

  24. 同时设置一个或者多个key-value 对,当且仅当给定key都不存在
    msetnx < value1> < key2> < value2>…
  25. redis只能存字符串 redis存string_缓存_13

  26. 获取值的范围(相当于字符串截取)
    getrange < key> < 起始位置> < 结束位置>
  27. redis只能存字符串 redis存string_数据库_14

  28. 用value 复写 key所春初的字符串值,从< 起始位置>开始(索引从0开始)
    setrange < key> < 开始位置> < value>
  29. redis只能存字符串 redis存string_redis_15

  30. 设置键值的同时,设置过期时间,单位秒
    setex < key> < 过期时间> < value>
  31. redis只能存字符串 redis存string_缓存_16


  32. redis只能存字符串 redis存string_字符串_17

  33. 以新换旧,设置新值的同时获取旧值
    getset < key> < value>
  34. redis只能存字符串 redis存string_redis只能存字符串_18