Redis基本数据类型和函数

Redis基本命令

1、Redis数据类型

Redis有string(字符串)、hash(哈希)、list(列表)、set(集合)和zset(有序集合)五种数据类型

1.1、String(字符串)

string类型是Redis的最基本的数据类型,string类型的值最大能存储512MB。

可以存储任何数据,结构是一个key对应一个value。

1.1.1、基本语法
COMMAND key_name
1.1.2、基本命令
  1. SET key value

    设置指定key的值。

    服务器:0>set abc 123
    "OK"
    
  2. GET key
    获取指定key的值。

    服务器:0>get abc
    "123"
    
  3. GETSET key value
    修改指定key的值为新值,并返回这个key的旧值。

    服务器:0>getset abc 234
    "123"
    服务器:0>get abc
    "234"
    
  4. GETRANGE key start end

    返回指定key的值从start到end的子字符串

    服务器:0>getrange abc 0 1
    "23"
    
  5. GETBIT key offset

    对于指定的key的字符串,获取指定偏移量上的位。

    通俗意思就是将key对应的字符串转换为二进制0和1,从左往右数,offset为几,就是当前偏移量上的位值,要么0,要么1。

    服务器:0>getbit abc 1
    "0"
    

    参考链接:

  6. SETBIT key offset value
    修改指定key对应字符串指定的位的值,只能修改为0或1,否则报错。

    详解见上条命令GETBIT

    服务器:0>setbit abc 1 1
    "0"
    服务器:0>get abc
    "r34"
    
  7. MGET key1 [key2…]
    获取一个或多个key的值。

    服务器:0>mget abc def
     1)  "r34"
     2)  "567"
    
  8. SETEX key seconds value

    设置或覆盖key的值为value,并设置有效期seconds,秒为单位。

    服务器:0>setex abc 10 789
    "OK"
    服务器:0>get abc
    "789"
    

    十秒后

    服务器:0>get abc
    null
    
  9. SETNX key value
    只有在key不存在的时候设置key的值,意思就是不能覆盖写入!

    服务器:0>set abc 123
    "OK"
    服务器:0>setnx abc 456
    "0"
    服务器:0>get abc
    "123"
    服务器:0>get xyz
    null
    服务器:0>setnx xyz 987
    "1"
    服务器:0>get xyz
    "987"
    
  10. SETRANGE key offset value
    用value覆盖写入key对应的字符串,从偏移量offset开始。

    服务器:0>get abc
    "123"
    服务器:0>setrange abc 1 098
    "4"
    服务器:0>get abc
    "1098"
    
  11. STRLEN key
    返回key对应字符串的长度

    服务器:0>get abc
    "1098"
    服务器:0>strlen abc
    "4"
    服务器:0>strlen def
    "3"
    
  12. MSET key value [key value…]

    同时设置多个key-value对。

    服务器:0>mset abc 123 def 234
    "OK"
    服务器:0>mget abc def
     1)  "123"
     2)  "234"
    
  13. MSETNX key value [key value…]

    同时设置多个key-value对,当且仅当所有的key都不存在。

    服务器:0>mget abc def
     1)  "123"
     2)  "234"
    服务器:0>msetnx abc 567 def 890
    "0"
    服务器:0>mget abc def
     1)  "123"
     2)  "234"
    服务器:0>del xyz
    "1"
    服务器:0>msetnx abc 567 def 890 xyz 009
    "0"
    服务器:0>mget abc def xyz
     1)  "123"
     2)  "234"
     3)  null
    服务器:0>del abc def xyz opt
    "4"
    服务器:0>mget abc def xyz opt
     1)  null
     2)  null
     3)  null
     4)  null
    服务器:0>msetnx abc 123 def 456 xyz 789
    "1"
    服务器:0>mget abc def xyz opt
     1)  "123"
     2)  "456"
     3)  "789"
     4)  null
    
  14. PSETEX key milliseconds value
    和SETEX命令相似,SETEX是以秒为单位设置key的过期时间,PSETEX是以毫秒为单位设置key的过期时间,这里就不举例了。

  15. INCR key

    将key对应的数字值加1,必须为数字,不然报错。

    服务器:0>get abc
    "123"
    服务器:0>incr abc
    "124"
    服务器:0>get abc
    "124"
    服务器:0>set abc qqq
    "OK"
    服务器:0>get abc
    "qqq"
    服务器:0>incr abc
    "ERR value is not an integer or out of range"
    
  16. INCRBY key increment

    将key对应的数字值加上指定的增量(increment),和INCR类似。

    服务器:0>set abc 123
    "OK"
    服务器:0>get abc
    "123"
    服务器:0>incrby abc 10
    "133"
    服务器:0>get abc
    "133"
    
  17. INCRBYFLOAT key increment

    将key对应的数字值加上指定的浮点增量(increment),和INCR类似。

    服务器:0>get abc
    "133"
    服务器:0>incrbyfloat abc 1.1
    "134.10000000000000001"
    服务器:0>get abc
    "134.10000000000000001"
    

    至于为什么是000000001,设计就是这样,可以自行百度0.0。
    建议减少使用此方法!!!会出现精度问题!!!尽量使用INCR。

  18. DECR key

    将key对应的数字值减1,必须为数字,不然报错。

    服务器:0>set abc 123
    "OK"
    服务器:0>decr abc
    "122"
    服务器:0>get abc
    "122"
    
  19. DECRBY key increment

    将key对应的数字值减去指定的减量(increment),和DECR类似。

    服务器:0>get abc
    "122"
    服务器:0>decrby abc 10
    "112"
    服务器:0>get abc
    "112"
    
  20. APPEND key value

    如果key对应的字符串存在,则在当前字符串末尾追加指定的value字符串;如果key对应的字符串不存在,则直接给设置当前key的值为value。

    服务器:0>del abc
    "1"
    服务器:0>get abc
    null
    服务器:0>append abc 123
    "3"
    服务器:0>get abc
    "123"
    服务器:0>append abc 456
    "6"
    服务器:0>get abc
    "123456"
    

1.2、Hash(哈希)

Redis hash是一个string类型的field(字段)和value(值)的映射表,适用于存储对象。

Redis每个hash可以存储232-1键值对(40多亿)

1.2.1、基本命令
  1. HSET key field value

    将哈希表key中的字段filed的值设置为value。

    服务器:0>hset test name jly
    "1"
    服务器:0>hset test age 20
    "1"
    服务器:0>hset test addr "河南"
    "1"
    服务器:0>hgetall test
     1)  "name"
     2)  "jly"
     3)  "age"
     4)  "20"
     5)  "addr"
     6)  "河南"
    
  2. HMSET key field1 value1 [field2 value2…]
    同时将多个field-value对设置到哈希表hkey中

    服务器:0>hmset test1 name zs age 21 addr 河北
    "OK"
    服务器:0>hgetall test1
     1)  "n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值