zoukankan      html  css  js  c++  java
  • 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"
      
      
  • 相关阅读:
    让AutoMapper更好用
    设置ADB网络连接目标板
    windos或linux中 which命令 查看当前要执行的命令所在的路径
    secureCRT使用退格键(backspace)出现^H解决办法
    Ubuntu12.04安装insight-6.8
    Linux命令之type
    BUG:给Nexus7编译Android4.2的时候出现 fatal error: map: No such file or directory
    Kconfig和Makefile的修改
    diff命令的参数详解和实例
    Linux获取当前目录名,shell获取当前目录名
  • 原文地址:https://www.cnblogs.com/plf-Jack/p/11025112.html
Copyright © 2011-2022 走看看