假设key已经存在,而且为字符串。那么这个命令会把value追加到原来值的末尾。假设key不存在。首先创建一个空字符串,再运行追加操作。
返回值:返回APPEND后字符串的长度。
EXISTS mykey 0 APPEND mykey "Hello" 5 APPEND mykey " world" 11 GET mykey Hello world
SETBIT
SETBIT key offset value
对key所存储的字符串值,设置或清除指定偏移量上的位(bit)。
位的设置或清除取决于value參数。
当key不存在时,自己主动生成一个新的字符串值。
SETBIT bit 10086 1 0 SETBIT bit 10086 1 1 GETBIT bit 10086 1 GETBIT bit 100 0
BITCOUNT
BITCOUNT key [start] [end]
计算给定字符串中,被设置为1 的比特位的数量。对于不存在的字符串。BITCOUNNT操作返回0。
返回值:被设置为1的位的数量。
BITCOUNT bits 0 SETBIT bits 0 1 0 BITCOUNT bits 1 SETBIT bits 3 1 0 BITCOUNT bits 2
-
模式:使用bitmap实现用户上线次数统计
能够使用SETBIT key为站点上线的天数。value为1,来确定用户在某天在线。从而统计出用户的上线天数。如设置Peter在第101天在线,则能够使用:
SETBIT peter 101 1
依次类推。最后统计就可以获取用户在线天数。
GETBIT key offset
对key所存储的字符串值。获取指定偏移量上的位。
当offset比字符串的长度大。或者key不存在时,返回0。
EXISTS bit 0 GETBIT bit 10086 0 SETBIT bit 4 1 0 GETBIT bit 4 1
DECR
将key中存储的数字值减一。
假设key不存在,那么会初始化key值为0。然后惊醒DECR操作。操作限制在64位有符号数字内。
返回值:运行DECR命令后的key值。
SET num 10 OK DECR num 9 EXISTS count 0 DECR count -1
DECRBY key decrement
将key所存储的值减去减量decrement。
假设key不存在,则先被初始化为0,然后再运行操作。
假设值包括错误的类型,则会返回一个错误。
返回值:操作后的值。
SET count 10 OK DECRBY count 20 -10 EXISTS pages 0 DECRBY pages 1 -1 DECRBY pages -1 0 DECRBY pages -3 3
GET key
返回key所关联的字符串的值。假设key不存在,则返回nil。
返回值:key不存在时,返回nil。否则返回key的值。
假设key不是字符串类型。则返回一个错误。
GET db SET DB redis OK get DB redis DEL db 0 EXISTS db 0 LPUSH db redis mongodb mysql 3 GET db ERR Operation against a key holding the wrong kind of value
GETRANGE key start end
返回字符串值的字串。start end指定截取范围(包含start end在内)。负数表示从最后開始计数。
返回值:截取的子串。
SET greeting "Hello,my friend" OK GETRANGE greeting 0 4 Hello GETRANGE greeting -1 -5 GETRANGE greeting -3 -1 end GETRANGE greeting 0 -1 Hello,my friend GETRANGE greeting 0 10000000 Hello,my friend
GETSET key value
将给定key的值设为value,并返回key的旧值。
当key存在但不是字符串时。返回一个错误。
返回值:返回给定key的旧值。
当key没有旧值,即key不存在时。返回nil。
GETSET db mongodb GET db mongodb GETSET db redis mongodb
模式:GETSET和INCR组合使用,实现获取一个原子性操作的运行计数器结果,并对结果进行复位。
INCR mycount 1 INCR mycount 2 INCR mycount 3 GETSET mycount 0 3
INCR key
将key中存储的数字值增一。
假设key不存在,那么key会被初始化0,再运行INCR操作。
假设包括错误的数据类型,则会返回一个错误。
返回值:运行INCR操作后key的值。
SET page_view 20 OK INCR page_view 21
模式:计数器
INCRBY key increment
将key所存储的值添加增量increment。
假设key不存在,那么key的值会先被初始化为0,再运行INCRBY操作。
SET rank 50 OK INCRBY rank 20 70 GET rank 70 SET book "REDIS" OK INCRBY book 1 ERR value is not an integer or out of range
INCRBYFLOAT key increment
为key中所存储的 值加上浮点数的增量increment。
不管加法计算所得的浮点数的实际精度有多长。
INCRBYFLOAT 的计算结果也最多仅仅能表示小数点的后十七位。
返回值:运行之后key的值。
SET mykey 10.50 OK INCRBYFLOAT mykey 0.1 10.6 SET mykey 314e-2 OK INCRBYFLOAT mykey 0.5 3.64 SET mykey 4 OK INCRBYFLOAT mykey 0.5 4.5
MGET key[key...]
返回所全部给定key的值。
假设给定key里面,某个key不存在,则这个key返回特殊值nil。
该命令永不失败。
返回值:一个包括全部给定key的值的列表。
SET redis redis.com OK SET mongodb mongodb.com OK MGET redis mongodb mysql redis.com mongodb.com
MSET key value[key value]
同一时候设置一个或多个key-value对。
假设某个给定key存在,那么覆盖原有值。
假设不希望被覆盖。能够使用MSENX命令。
MSET是一个原子操作,全部给定的key都会在同一时间被设置。
返回值:总是返回OK。
MSETNX key value[key value ...]
同一时候设置多个key-value,当且仅当全部给定key都不存在。
假设有一个key存在,那么MSETNX操作会拒绝运行全部给定的key。
MSETNX是原子操作,全部字段要么成功,要么失败。
返回值:全部key成功。返回1。
失败返回0。
PSETEX key milliseconds value
已milliseconds毫秒为单位。设置key的生存时间。
返回值:成功返回OK。
SET key value [EX seconds] [PX milliseconds] [NX] [NX]
将字符串value关联到key。
假设key已经持有其它值,SET操作覆盖旧值。
对于某个原本都有生存时间TTL的键来说。当SET命令成功在运行时,原TTL会被清除。
可选參数:
- EX seconds:设置键的国企时间为second秒。此參数等同于SETEX key second value。
-
PX millisecond:设置键的过期时间为millisecond毫秒。
SETkey value PXmillisecond效果等同于PSETEX key millisecondvalue。 - NX:仅仅在key不存在时。才对key运行操作。
set key value NX 等同于: SETNX key value。
- XX:仅仅在键已经存在时,才进行操作。
SETEX key seconds value
将value关联到key。并将key的生存时间设置为seconds秒。
假设key已经存在,SETEX将会覆盖旧值。
返回值:设置成功时返回OK。蛋seconds參数不合法时,返回一个错误。
SETEX user_id 60 10086 OK TTL user_id 54 get user_id 10086 get user_id 10086 TTL user_id 36
SETNX key value
将key的值设为value。当且仅当key不存在。
若给定的key已经存在。则SETNX不做不论什么动作。SETNX 是 SET if Not eXists。
返回值:成功1,失败0。
EXISTS job 0 SETNX job "code-farmer" 1 SETNX job "programmer" 0 GET job code-farmer
SETRANGE key offset value
用value參数overwrite给定key所存储的字符串,从offset開始。
不存在的key当做空白字符串处理。
SETRANGE命令会确保字符串足够长以便将value设置在指定的廉价量上。假设字符串长度比偏移量小,则空白处使用零字节(\x00)填充。
使用的最大偏移量为2^29 - 1。
返回值:改动后的字符串长度。
STRLEN key
返回字符串的长度。当key不是一个字符串时。返回一个错误。
返回值: 字符串长度。
当key不存在时,返回0。