• redis我记不住的那些命令(三)


    背景:我记不住那么多命令,又是Linux命令,又是Git命令,又是kubernetes的命令,又是maven命令,又是redis命令。所谓好记性不如烂笔头,记下来吧。

    对于中文来说,可以使用 redis-cli --raw

    一、string类型

    二进制安全、最大1G、可以包含任何数据,都是以二进制的方式进行存储的

    1. set  :  设定key和value的值

    2. get  :  获取指定key的相应的value的值

    3. setnx : 指定的 key 不存在时,为 key 设置指定的值,如果已经存在,则不执行操作

    4. mset :  批量设定key和value

    5. msetnx :  批量设定key和value,党指定的key不存在时为key设置指定的值,否则不进行任何操作。

    6. getset : 修改某个key的value值,并返回其 旧值

    7.  mget : 获取一个或多个key的值

    8. setex :  为指定的 key 设置值及其过期时间。如果 key 已经存在, 将会替换旧的值,单位为秒

    9. psetex :  作用同上一条命令,只是单位不同,为毫秒

    10. strlen : 获取字符串值的长度。 当 key 不存在时,返回 0

    11. setrange :  用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始,并返回修改后的字符串长度

    12. getrange  :  返回key的字符串值的子字符串,左闭右闭 [start,end] 按照字节来进行

    13. incr /incrby/incrbyfloat

          incr 对不存在的key是可以操作的,首先创建一个0值,然后自增

          incrby对不存在的key是无法操作的,会报错误

          incrbyfloat 会将无用的后缀零忽略掉,会将浮点变为整数。

    14. decr/decrby : 将 key 中储存的数字值减一,如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 decr 操作。

    15. append : 在原有字符串后进行追加操作

    16. setbit  : 用于对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)

          其中的offset 是从左到右进行自增,也就是从高位到低位进行计数,并自增offset

    17. getbit : 获取指定key的值的偏移量上的某位的值

    1. # 1. set
    2. 127.0.0.1:6379> set name beijingtiananmen
    3. OK
    4. # 2. get
    5. 127.0.0.1:6379> get name
    6. "beijingtiananmen"
    7. # 3. setnx : 如果key不存在,则新建一个key/value,如果key存在,则不执行命令
    8. 127.0.0.1:6379> setnx name gugongbowuyuan
    9. (integer) 0
    10. 127.0.0.1:6379> get name
    11. "beijingtiananmen"
    12. 127.0.0.1:6379>
    13. # 4. mset 多个key/value一起设置
    14. 127.0.0.1:6379> mset scenic1 beijingtiananmen scenic2 gugongbowuyuan scenic3 jingshangongyuan
    15. OK
    16. # 5. msetnx : 和上面第3个命令相似,区别在于msetnx是一个批量操作
    17. 127.0.0.1:6379> msetnx scenic1 changcheng scenic2 yiheyuan scenic3 yuanmingyuan
    18. (integer) 0
    19. # 都存在scenic1/scenic2/scenic3,所以不执行命令,还是原来的值
    20. 127.0.0.1:6379> mget scenic1 scenic2 scenic3
    21. 1) "beijingtiananmen"
    22. 2) "gugongbowuyuan"
    23. 3) "jingshangongyuan"
    24. # 6. getset : 修改某个key的值,但设置后返回的是原来的旧值
    25. 127.0.0.1:6379> getset scenic1 beijingrenmindahuitang
    26. "beijingtiananmen"
    27. 127.0.0.1:6379> get scenic1
    28. "beijingrenmindahuitang"
    29. # 假设 scenicXXX是一个不存在的key,则会创建一个新的keyvalue
    30. 127.0.0.1:6379> getset scenicXXX guojiabowuyuan
    31. (nil)
    32. 127.0.0.1:6379> get scenicXXX
    33. "guojiabowuyuan"
    34. 7. mget : 批量过去一些keyvalue,这个命令在第5条命令中有使用
    35. 127.0.0.1:6379> mget scenic1 scenic2 scenic3
    36. 1) "beijingtiananmen"
    37. 2) "gugongbowuyuan"
    38. 3) "jingshangongyuan"
    39. 8. setex : 设定一个key的有效期,单位为秒,注意格式 > setex key seconds value
    40. 127.0.0.1:6379> setex age 60 96
    41. OK
    42. 127.0.0.1:6379> ttl age
    43. (integer) 52
    44. 127.0.0.1:6379> ttl age
    45. (integer) 49
    46. ttl用于查看剩余多少秒
    47. 9. psetex : 设定一个key的有效期,单位为毫秒,注意格式 > setex key milliseconds value
    48. 127.0.0.1:6379> psetex age 60000 96
    49. OK
    50. 127.0.0.1:6379> ttl age
    51. (integer) 52
    52. 127.0.0.1:6379> ttl age
    53. (integer) 49
    54. ttl用于查看剩余多少秒
    55. 10. strlen : 查看一个keyvalue的长度
    56. 127.0.0.1:6379> get scenic1
    57. "beijingrenmindahuitang"
    58. 127.0.0.1:6379> strlen scenic1
    59. (integer) 22
    60. 11. setrange : 将字符串的某个位置开始进行替换,格式为: setrange key offset value
    61. 127.0.0.1:6379> setrange scenic1 7 guojiadajuyuan
    62. (integer) 22
    63. 127.0.0.1:6379> get scenic1
    64. "beijingguojiadajuyuang"
    65. 12. getrange : 截取某个字符串的值,功能类似substring,格式为: getrange key start end
    66. 127.0.0.1:6379> getrange scenic1 7 -1
    67. "guojiadajuyuang"
    68. 13. incr/incrby/incrfloat
    69. 127.0.0.1:6379> set age 33
    70. OK
    71. 127.0.0.1:6379> incr age
    72. (integer) 34
    73. 127.0.0.1:6379> incrby age 10
    74. (integer) 44
    75. 127.0.0.1:6379> incrbyfloat age 10.0
    76. "54"
    77. 14. decr/decrby
    78. 127.0.0.1:6379> decr age
    79. (integer) 53
    80. 127.0.0.1:6379> decrby age 10
    81. (integer) 43
    82. 15. append 将新串追加到原有字符串后
    83. 127.0.0.1:6379> append age 20
    84. (integer) 4
    85. 127.0.0.1:6379> get age
    86. "4320"
    87. 16. setbit 格式为: setbit key offset value
    88. # 从左往右,从高位至低位进行计数
    89. # 这里的a的ascii码为 0110 0001
    90. # 这里的b的ascii码为 0110 0010
    91. # 这里的c的ascii码为 0110 0011
    92. 127.0.0.1:6379> set num a
    93. OK
    94. 127.0.0.1:6379> setbit num 6 1
    95. (integer) 0
    96. 127.0.0.1:6379> get num
    97. "c"
    98. 127.0.0.1:6379> setbit num 7 0
    99. (integer) 1
    100. 127.0.0.1:6379> get num
    101. "b"
    102. 17. getbit 格式为: getbit key offset
    103. 127.0.0.1:6379> getbit num 1

  • 相关阅读:
    计算机网络期末复习题四
    详细分析Win11与Win10哪个好用
    文件上传漏洞实验-通过截取http请求绕过前端javascript验证进行文件上传
    08 MyBatis 注解开发
    C++ RAII在HotSpot VM中的重要应用
    memcpy函数
    TypeScript后端http请求
    CSS之垂直水平居中的背后
    mysql文档--myisam存储引擎--myisam引擎全解--底层探索
    用户行为分析-阿里日志服务
  • 原文地址:https://blog.csdn.net/u010566813/article/details/128117791