redis之string数据类型常用方法总结

Posted plf-jack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis之string数据类型常用方法总结相关的知识,希望对你有一定的参考价值。

redis 字符串(string)【需要掌握】

特点

  • 一个键能存储512MB数据
  • string类型是二进制安全的,可以存储任何数据,比如jpg图片或序列化对象

redis字符串数据类型的相关命令用于管理redis字符串值,基本语法如下:

语法

  1. ==set key values== 设置指定 key 的值

    127.0.0.1:6379> set name panlifu
    OK
    127.0.0.1:6379> get name 
    "panlifu"
  2. ==get key== 获取指定key的值

    127.0.0.1:6379> set name panlifu
    OK
    127.0.0.1:6379> get name 
    "panlifu"
  3. getrange key start end 返回key中字符串的子字符,类似python中的切片功能,不同在于redis顾头顾尾

    127.0.0.1:6379> set name panlifu
    OK
    127.0.0.1:6379> get name 
    "panlifu"
    127.0.0.1:6379> GETRANGE name 0 3
    "panl"
  4. getset key value 将给定key的值设为value,并返回key的旧值(old value)

    127.0.0.1:6379> set name panlifu
    OK
    127.0.0.1:6379> get name 
    "panlifu"
    127.0.0.1:6379> GETRANGE name 0 3
    "panl"
    127.0.0.1:6379> GETSET name lt
    "panlifu"
    127.0.0.1:6379> get name
    "lt"
  5. getbit key offset 对key所储存的字符串值,获取指定偏移量上的位(bit) ?

  6. setbit key offset value 对key所储存的字符串值,设置或清除指定偏移量上的位(bit) ?

  7. ==mget key1 [key2...]==获取所有(一个或多个)给定key的值

    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> set age 24
    OK
    127.0.0.1:6379> get age
    "24"
    127.0.0.1:6379> get age name
    (error) ERR wrong number of arguments for 'get' command
    127.0.0.1:6379> mget name age
    1) "panlifu"
    2) "24"
    127.0.0.1:6379> 
  8. ==setex key secondes value== 将值value关联到key,并将key的过期时间设置为secondes(以秒为单位)

    # 第一种方法
    127.0.0.1:6379> setex name 5 "panlifu"
    OK
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get name
    (nil)
    
    # 第二种方法
    127.0.0.1:6379> set name panlifu ex 6
    OK
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get name
    (nil)
  9. ==setnx key value== 只有在key不存在时设置key的值

    127.0.0.1:6379> get name
    (nil)
    127.0.0.1:6379> setnx name panlifu
    (integer) 1
    127.0.0.1:6379> get name 
    "panlifu"
    127.0.0.1:6379> get name 
    "panlifu"
    127.0.0.1:6379> setnx name lt
    (integer) 0
    127.0.0.1:6379> get name 
    "panlifu"
  10. setrange key offset value 用value参数覆写给定key所存储的字符串值,从偏移量offset开始

    127.0.0.1:6379> set name "hello world"
    OK
    127.0.0.1:6379> get name
    "hello world"
    127.0.0.1:6379> SETRANGE name 6 "redis"
    (integer) 11
    127.0.0.1:6379> get name
    "hello redis"
    
  11. mset key value [key value] 同时设置一个或者多个key -value对

    127.0.0.1:6379> mset name panlifu age 18
    OK
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get age
    "18"
    
  12. msetnx key value [key value] 同时设置一个或者多个key-value对,当且仅当所有给定key都不存在

    127.0.0.1:6379> msetnx sex boy height 120
    (integer) 1
    127.0.0.1:6379> get sex
    "boy"
    127.0.0.1:6379> get height
    "120"
    127.0.0.1:6379> msetnx name lt age 17
    (integer) 0
    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> get age
    "18"
    

    ==总结:key前面有m一般都指 可以设置多个 键值对。 键后面带nx 一般表示 只有当key不存在时,才能设置该key。==

  13. strlen key 返回 key 所储存的字符串值的长度

    127.0.0.1:6379> get name
    "panlifu"
    127.0.0.1:6379> strlen name
    (integer) 7
  14. psetex key milliseconds value 这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位

    127.0.0.1:6379> psetex name 1000 hehe
    OK
    127.0.0.1:6379> get name
    "hehe"
    127.0.0.1:6379> get name
    (nil)

    ==总结:当键以ex结尾时,一般表示设置 key的过期时间,单位为秒。当键前面有p且后面有ex时,也表示设置key过期时间,单位为毫秒==

  15. incr key 将key中存储的数字值增1

    127.0.0.1:6379> set age 19
    OK
    127.0.0.1:6379> get age
    "19"
    127.0.0.1:6379> incr age
    (integer) 20
    127.0.0.1:6379> incr age
    (integer) 21
    127.0.0.1:6379> get age
    "21"
    127.0.0.1:6379> set age "19"
    OK
    127.0.0.1:6379> get age
    "19"
    127.0.0.1:6379> incr age
    (integer) 20
    127.0.0.1:6379> incr age
    (integer) 21
    127.0.0.1:6379> get age
    "21"
    127.0.0.1:6379> incr age
    (integer) 22
    127.0.0.1:6379> get age
    "22"
    127.0.0.1:6379> type age
    string

    ==总结:string数据类型中的数据,value的数据类型都是string类型。只要string全为数字,即可使用incr键==

  16. incrby key increment 将key所储存的值加上给定的浮点增量值

    127.0.0.1:6379> get age
    "27"
    127.0.0.1:6379> incrby age 3
    (integer) 30
    127.0.0.1:6379> get age
    "30"
  17. incrbyfloat key increment 将 key 所储存的值加上给定的浮点增量值(increment) 。

    127.0.0.1:6379> get age
    "30"
    127.0.0.1:6379> incrbyfloat age 1.5
    "31.5"
    127.0.0.1:6379> get age
    "31.5"
  18. decrby key decrement key 所储存的值减去给定的减量值(decrement)

    127.0.0.1:6379> incrbyfloat age -1.5
    "30"
    127.0.0.1:6379> decrby age 5
    (integer) 25
    127.0.0.1:6379> get age
    "25"
  19. decr key 将 key 中储存的数字值减一。

  20. append key value 果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。

    127.0.0.1:6379> get age
    "25"
    127.0.0.1:6379> append age hehe
    (integer) 6
    127.0.0.1:6379> get age
    "25hehe"
    

以上是关于redis之string数据类型常用方法总结的主要内容,如果未能解决你的问题,请参考以下文章

Redis命令数据结构场景配置文件总结

Redis常用数据类型及应用场景之String

Redis 数据类型总结—String

Redis-Redis的常用数据类型之String字符串

自学总结redis第二部分(redis常用命令高级命令特性以及与java代码的结合)

Redis常用命令总结