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、基本命令
-
SET key value
设置指定key的值。
服务器:0>set abc 123 "OK" -
GET key
获取指定key的值。服务器:0>get abc "123" -
GETSET key value
修改指定key的值为新值,并返回这个key的旧值。服务器:0>getset abc 234 "123" 服务器:0>get abc "234" -
GETRANGE key start end
返回指定key的值从start到end的子字符串
服务器:0>getrange abc 0 1 "23" -
GETBIT key offset
对于指定的key的字符串,获取指定偏移量上的位。
通俗意思就是将key对应的字符串转换为二进制0和1,从左往右数,offset为几,就是当前偏移量上的位值,要么0,要么1。
服务器:0>getbit abc 1 "0"参考链接:
-
SETBIT key offset value
修改指定key对应字符串指定的位的值,只能修改为0或1,否则报错。详解见上条命令GETBIT
服务器:0>setbit abc 1 1 "0" 服务器:0>get abc "r34" -
MGET key1 [key2…]
获取一个或多个key的值。服务器:0>mget abc def 1) "r34" 2) "567" -
SETEX key seconds value
设置或覆盖key的值为value,并设置有效期seconds,秒为单位。
服务器:0>setex abc 10 789 "OK" 服务器:0>get abc "789"十秒后
服务器:0>get abc null -
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" -
SETRANGE key offset value
用value覆盖写入key对应的字符串,从偏移量offset开始。服务器:0>get abc "123" 服务器:0>setrange abc 1 098 "4" 服务器:0>get abc "1098" -
STRLEN key
返回key对应字符串的长度服务器:0>get abc "1098" 服务器:0>strlen abc "4" 服务器:0>strlen def "3" -
MSET key value [key value…]
同时设置多个key-value对。
服务器:0>mset abc 123 def 234 "OK" 服务器:0>mget abc def 1) "123" 2) "234" -
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 -
PSETEX key milliseconds value
和SETEX命令相似,SETEX是以秒为单位设置key的过期时间,PSETEX是以毫秒为单位设置key的过期时间,这里就不举例了。 -
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" -
INCRBY key increment
将key对应的数字值加上指定的增量(increment),和INCR类似。
服务器:0>set abc 123 "OK" 服务器:0>get abc "123" 服务器:0>incrby abc 10 "133" 服务器:0>get abc "133" -
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。 -
DECR key
将key对应的数字值减1,必须为数字,不然报错。
服务器:0>set abc 123 "OK" 服务器:0>decr abc "122" 服务器:0>get abc "122" -
DECRBY key increment
将key对应的数字值减去指定的减量(increment),和DECR类似。
服务器:0>get abc "122" 服务器:0>decrby abc 10 "112" 服务器:0>get abc "112" -
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、基本命令
-
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) "河南" -
HMSET key field1 value1 [field2 value2…]
同时将多个field-value对设置到哈希表hkey中服务器:0>hmset test1 name zs age 21 addr 河北 "OK" 服务器:0>hgetall test1 1) "n

最低0.47元/天 解锁文章
982






