redis基本数据类型(string字符串)

存储类型

int(整数)、float(单精度浮点数)、string(字符串)

常用操作命令

set

  • 命令

    SET key value [EX seconds] [PX milliseconds] [NX|XX]
    
  • 说明
    将键key设定为指定的“字符串”值。
    如果 key 已经保存了一个值,那么这个操作会直接覆盖原来的值,并且忽略原始类型。
    当set命令执行成功之后,之前设置的过期时间都将失效

  • 选项
    从2.6.12版本开始,redis为SET命令增加了一系列选项:

    • EX seconds – 设置键key的过期时间,单位时秒
    • PX milliseconds – 设置键key的过期时间,单位时毫秒
    • NX – 只有键key不存在的时候才会设置key的值
    • XX – 只有键key存在的时候才会设置key的值

    注意: 由于SET命令加上选项已经可以完全取代SETNX, SETEX, PSETEX的功能,所以在将来的版本中,redis可能会不推荐使用并且最终抛弃这几个命令。

  • 返回值

    如果SET命令正常执行那么回返回OK,否则如果加了NX 或者 XX选项,但是没有设置条件。那么会返回nil。

  • 例子

    redis> SET mykey "Hello"
    OK
    redis> GET mykey
    "Hello"
    redis> 
    

get

  • 命令

    GET key
    
  • 说明

    返回keyvalue。如果key不存在,返回特殊值nil。如果keyvalue不是string,就返回错误,因为GET只处理string类型的values

  • 返回值

    key对应的value,或者nil(key不存在时)

  • 例子

    redis> GET nonexisting
    (nil)
    redis> SET mykey "Hello"
    OK
    redis> GET mykey
    "Hello"
    redis> 
    

mset

  • 命令

    MSET key value [key value ...]
    
  • 说明

    对应给定的keys到他们相应的values上。MSET会用新的value替换已经存在的value,就像普通的SET命令一样。如果你不想覆盖已经存在的values,请参看命令MSETNX

    MSET是原子的,所以所有给定的keys是一次性set的。客户端不可能看到这种一部分keys被更新而另外的没有改变的情况。

  • 返回值

    总是OK,因为MSET不会失败。

  • 例子

    redis> MSET key1 "Hello" key2 "World"
    OK
    redis> GET key1
    "Hello"
    redis> GET key2
    "World"
    redis> 
    

mget

  • 命令

    MGET key [key ...]
    
  • 说明

    返回所有指定的key的value。对于每个不对应string或者不存在的key,都返回特殊值nil。正因为此,这个操作从来不会失败。

  • 返回值

    指定的key对应的values的list

  • 例子

    redis> SET key1 "Hello"
    OK
    redis> SET key2 "World"
    OK
    redis> MGET key1 key2 nonexisting
    1) "Hello"
    2) "World"
    3) (nil)
    redis> 
    

getrange

  • 命令

    GETRANGE key start end
    
  • 说明

    警告:这个命令是被改成GETRANGE的,在小于2.0的Redis版本中叫SUBSTR。 返回key对应的字符串value的子串,这个子串是由start和end位移决定的(两者都在string内)。可以用负的位移来表示从string尾部开始数的下标。所以-1就是最后一个字符,-2就是倒数第二个,以此类推。

    这个函数处理超出范围的请求时,都把结果限制在string内。

  • 例子

    redis> SET mykey "This is a string"
    OK
    redis> GETRANGE mykey 0 3
    "This"
    redis> GETRANGE mykey -3 -1
    "ing"
    redis> GETRANGE mykey 0 -1
    "This is a string"
    redis> GETRANGE mykey 10 100
    "string"
    redis> 
    

strlen

  • 命令

    STRLEN key
    
  • 说明

    返回key的string类型value的长度。如果key对应的非string类型,就返回错误。

  • 返回值

    key对应的字符串value的长度,或者0(key不存在)

  • 例子

    redis> SET mykey "Hello world"
    OK
    redis> STRLEN mykey
    (integer) 11
    redis> STRLEN nonexisting
    (integer) 0
    redis> 
    

append

  • 命令

    APPEND key value
    
  • 说明

    如果 key 已经存在,并且值为字符串,那么这个命令会把 value 追加到原来值(value)的结尾。 如果 key 不存在,那么它将首先创建一个空字符串的key,再执行追加操作,这种情况 APPEND 将类似于 SET 操作。

  • 返回值

    返回append后字符串值(value)的长度。

  • 例子

    redis> EXISTS mykey
    (integer) 0
    redis> APPEND mykey "Hello"
    (integer) 5
    redis> APPEND mykey " World"
    (integer) 11
    redis> GET mykey
    "Hello World"
    redis>
    

incr

  • 命令

    INCR key
    
  • 说明

    对存储在指定key的数值执行原子的加1操作。

    如果指定的key不存在,那么在执行incr操作之前,会先将它的值设定为0

    如果指定的key中存储的值不是字符串类型(fix:)或者存储的字符串类型不能表示为一个整数,

    那么执行这个命令时服务器会返回一个错误(eq:(error) ERR value is not an integer or out of range)。

    这个操作仅限于64位的有符号整型数据。

    注意: 由于redis并没有一个明确的类型来表示整型数据,所以这个操作是一个字符串操作。

    执行这个操作的时候,key对应存储的字符串被解析为10进制的64位有符号整型数据

    事实上,Redis 内部采用整数形式(Integer representation)来存储对应的整数值,所以对该类字符串值实际上是用整数保存,也就不存在存储整数的字符串表示(String representation)所带来的额外消耗。

  • 返回值

    执行递增操作后key对应的值。

  • 例子

    redis> SET mykey "10"
    OK
    redis> INCR mykey
    (integer) 11
    redis> GET mykey
    "11"
    redis> 
    

incrby

  • 命令

    INCRBY key increment
    
  • 说明

    将key对应的数字加decrement。如果key不存在,操作之前,key就会被置为0。如果key的value类型错误或者是个不能表示成数字的字符串,就返回错误。这个操作最多支持64位有符号的正型数字。

    查看命令INCR了解关于增减操作的额外信息。

  • 返回值

    增加之后的value值。

  • 例子

    redis> SET mykey "10"
    OK
    redis> INCRBY mykey 5
    (integer) 15
    redis> 
    

incrbyfloat

  • 命令

    INCRBYFLOAT key increment
    
  • 说明

    通过指定浮点数key来增长浮点数(存放于string中)的值. 当键不存在时,先将其值设为0再操作.下面任一情况都会返回错误:

    • key 包含非法值(不是一个string).
    • 当前的key或者相加后的值不能解析为一个双精度的浮点值.(超出精度范围了)

    如果操作命令成功, 相加后的值将替换原值存储在对应的键值上, 并以string的类型返回. string中已存的值或者相加参数可以任意选用指数符号,但相加计算的结果会以科学计数法的格式存储. 无论各计算的内部精度如何, 输出精度都固定为小数点后17位

  • 返回值

    当前key增加increment后的值。

  • 例子

    redis> SET mykey 10.50
    OK
    redis> INCRBYFLOAT mykey 0.1
    "10.6"
    redis> SET mykey 5.0e3
    OK
    redis> INCRBYFLOAT mykey 2.0e2
    "5200"
    redis> 
    

decr

  • 命令

    DECR key
    
  • 说明

    对key对应的数字做减1操作。如果key不存在,那么在操作之前,这个key对应的值会被置为0。如果key有一个错误类型的value或者是一个不能表示成数字的字符串,就返回错误。这个操作最大支持在64位有符号的整型数字。

    查看命令INCR了解关于增减操作的额外信息。

  • 返回值

    减小之后的value

  • 例子

    redis> SET mykey "10"
    OK
    redis> DECR mykey
    (integer) 9
    redis> SET mykey "234293482390480948029348230948"
    OK
    redis> DECR mykey
    ERR value is not an integer or out of range
    redis> 
    

decrby

  • 命令

    DECRBY key decrement
    
  • 说明

    将key对应的数字减decrement。如果key不存在,操作之前,key就会被置为0。如果key的value类型错误或者是个不能表示成数字的字符串,就返回错误。这个操作最多支持64位有符号的正型数字。

    查看命令INCR了解关于增减操作的额外信息。

  • 返回值

    返回一个数字:减少之后的value值。

  • 例子

    redis> SET mykey "10"
    OK
    redis> DECRBY mykey 5
    (integer) 5
    redis> 
    

del

  • 命令

    DEL key [key ...]
    
  • 说明

    删除指定的一批keys,如果删除中的某些key不存在,则直接忽略。

  • 返回值

    被删除的keys的数量

  • 例子

    redis> SET key1 "Hello"
    OK
    redis> SET key2 "World"
    OK
    redis> DEL key1 key2 key3
    (integer) 2
    redis> 
    

猜你喜欢

转载自blog.csdn.net/huangge1199/article/details/112305411