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"
      
      
  • 相关阅读:
    noi 2011 noi嘉年华 动态规划
    最小乘积生成树
    noi 2009 二叉查找树 动态规划
    noi 2010 超级钢琴 划分树
    noi 2011 阿狸的打字机 AC自动机
    noi 2009 变换序列 贪心
    poj 3659 Cell Phone Network 动态规划
    noi 2010 航空管制 贪心
    IDEA14下配置SVN
    在SpringMVC框架下建立Web项目时web.xml到底该写些什么呢?
  • 原文地址:https://www.cnblogs.com/plf-Jack/p/11025112.html
Copyright © 2011-2022 走看看