#append
 $ src/redis-cli -c -p 8029 

 127.0.0.1:8029> exists mykey 

 (integer) 0 

 > append mykey 'nihao' 

 (integer) 5 

 > append mykey 'world' 

 (integer) 10 

 > get mykey 

 "nihaoworld" 

 > append ts '0043' 

 (integer) 4 

 > append ts '0035' 

 (integer) 8 

 > getrange ts 0 3 

 "0043" 

 > getrange ts 4 7 

 "0035" 



 #BITCOUNT 

 BITCOUNT key [start][end] 

 计算给定字符串中,被设置为1的比特位的数量 

 一般情况下,给定的整个字符串都会被进行计数,通过指定额外的 start 或 end 参数,可以让计数只在特定的位上进行。 

 start 和 end 参数的设置和 GETRANGE 命令类似,都可以使用负数值: 比如 -1 表示最后一个字节, -2 表示倒数第二个字节,以此类推。 

 不存在的 key 被当成是空字符串来处理,因此对一个不存在的 key 进行 BITCOUNT 操作,结果为 0 。 

 >set andy a 

 OK 

 > bitcount andy 

 (integer) 3 



 #BITTOP 


 #DECR 

 将 key 中储存的数字值减一。 

 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。 

 > set failure_times 10 

 OK 

 > decr failure_times 

 (integer) 9 

 > decr failure_times1 

 (integer) -1 


 #DECRBY 

 DECRBY key decrement 

 将 key 所储存的值减去减量 decrement 。 

 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。 

 > set failure_times 10 

 OK 

 > decr failure_times 

 (integer) 9 

 > decrby failure_times 2 

 (integer) 7 



 #GET 

 GET key 

 返回 key 所关联的字符串值。 

 如果 key 不存在那么返回特殊值 nil 。 

 > set db redis 

 OK 

 > get db 

 "redis" 

 > get db1 

 (nil) 


 #GETRANGE 

 GETRANGE key start end 

 返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。 

 负数偏移量表示从字符串最后开始计数, -1 表示最后一个字符, -2 表示倒数第二个,以此类推。 

 > set greeting "hello,my friend" 

 OK 

 > getrange greeting 0 4 

 "hello" 



 #GETSET 

 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。 

 当 key 存在但不是字符串类型时,返回一个错误。 

 > getset db mongodb 

 (nil) 

 > getset db redis 

 "mongodb" 

 > get db 

 "redis" 


 #INCR 

 将 key 中储存的数字值增一。 

 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。 

 > set page_view 20 

 OK 

 > incr page_view 

 (integer) 21 


 #INCRBY 

 将 key 所储存的值加上增量 increment 。 

 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。 

 > set page_view 20 

 OK 

 > incr page_view 

 (integer) 21 

 > incrby page_view 50 

 (integer) 71 


 #INCRBYFLOAT 

 INCRBYFLOAT key increment 

 为 key 中所储存的值加上浮点数增量 increment 。 

 如果 key 不存在,那么 INCRBYFLOAT 会先将 key 的值设为 0 ,再执行加法操作。 

 > set page_view 20 

 OK 

 > incr page_view 

 (integer) 21 

 > incrby page_view 50 

 (integer) 71 

 > incrbyfloat page_view 01 

 "72" 

 > incrbyfloat page_view 0.1 

 "72.1" 

 > incrbyfloat page_view1 0.1 

 "0.1" 


 #MGET 

 MGET key [key ...] 

 返回所有(一个或多个)给定 key 的值。 

 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。因此,该命令永不失败。 

 > set redis redis.com 

 OK 

 > mget redis 

 1) "redis.com" 


 #MSET 

 MSET key value [key value ...] 

 同时设置一个或多个 key-value 对。 

 如果某个给定 key 已经存在,那么 MSET 会用新值覆盖原来的旧值,如果这不是你所希望的效果,请考虑使用 MSETNX 命令:它只会在所有给定 key 都不存在的情况下进行设置操作。 

 MSET 是一个原子性(atomic)操作,所有给定 key 都会在同一时间内被设置,某些给定 key 被更新而另一些给定 key 没有改变的情况,不可能发生。 


 #MSETNX 

 MSETNX key value [key value ...] 

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

 即使只有一个给定 key 已存在, MSETNX 也会拒绝执行所有给定 key 的设置操作。 

 MSETNX 是原子性的,因此它可以用作设置多个不同 key 表示不同字段(field)的唯一性逻辑对象(unique logic object),所有字段要么全被设置,要么全不被设置。 


 #PSETEX 

 PSETEX key milliseconds value 

 这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。 

 > psetex mykey 100000 hello 

 OK 

 > pttl mykey 

 (integer) 97533 


 #STRLEN 

 STRLEN key 

 返回 key 所储存的字符串值的长度。 

 当 key 储存的不是字符串值时,返回一个错误。 

 > set mykey "helloworld" 

 OK 

 > strlen mykey 

 (integer) 10