邮箱:Qifeng.zou.job@gmail.com
博客:http://blog.csdn.net/qifengzou
日期:2014.10.11
转载请注明来自"祁峰"的CSDN博客
1 简单概述
String数据类型是Redis中最简单、最基础的数据类型,Redis中所有的KEY和VALUE都是String类型,且其他更为复杂的数据类型(LISTS、SETS、SORTED-SETS、HASHES)也均基于String数据类型来存储的。String数据类型是二进制安全的,也就是说String可以包含任何格式的数据,比如:JPG图片、序列化的对象等。
2 操作命令
表1 String类型操作命令
| 01 | APPEND key value |
| 功能描述:将KEY对应的VALUE值减1 返回结果:APPEND操作之后,KEY对应VALUE的最终长度 注意事项: 1)时间复杂度:O(1) 2)当KEY存在,且为STRING类型时,将会将value追加到原有值末尾; 3)如果KEY不存在,将会新建KEY/VALUE。 |
|
| 02 | DECR key |
| 功能描述:将KEY对应的VALUE原子性的减1 返回结果:返回执行减1操作后KEY对应的VALUE值 注意事项: 1)时间复杂度:O(1) 2)如果KEY对应VALUE能转化为数字,则执行减1操作; 3)如果KEY对应VALUE不能转化为数字,则返回错误信息; 4)该操作是原子性的。假设:当前KEY对应的VALUE值为100,当3个客户端同时执行该操作时,最终结果将会是97。 |
|
| 03 | INCR key |
| 功能描述:将KEY对应的VALUE原子性的加1 返回结果:返回执行加1操作后KEY对应的VALUE值 注意事项: 1)时间复杂度:O(1) 2)如果KEY对应VALUE能转化为数字,则执行加1操作; 3)如果KEY对应VALUE不能转化为数字,则返回错误信息; 4)该操作是原子性的。假设:当前KEY对应的VALUE值为100,当3个客户端同时执行该操作时,最终结果将会是103。 |
|
| 04 | DECRBY key decremen |
| 功能描述:将KEY对应的VALUE原子性的减decrement 返回结果:返回执行减操作后KEY对应的VALUE值 注意事项: 1)时间复杂度:O(1) 2)如果KEY对应VALUE能转化为数字,则执行减操作; 3)如果KEY对应VALUE不能转化为数字,则返回错误信息; 4)参数decrement不能为浮点数,只能为整数; 5)该操作是原子性的。 |
|
| 05 | INCRBY key increment |
| 功能描述:将KEY对应的VALUE原子性的加increment 返回结果:返回执行加操作后KEY对应的VALUE值 注意事项: 1)时间复杂度:O(1) 2)如果KEY对应VALUE能转化为数字,则执行加操作; 3)如果KEY对应VALUE不能转化为数字,则返回错误信息; 4)参数increment不能为浮点数,只能为整数; 5)该操作是原子性的。 |
|
| 06 | INCRBYFLOAT key increment |
| 功能描述:将KEY对应的VALUE原子性的加increment 返回结果:返回执行加操作后KEY对应的VALUE值 注意事项: 1)时间复杂度:O(1) 2)如果KEY对应VALUE能转化为数字,则执行加操作; 3)如果KEY对应VALUE不能转化为数字,则返回错误信息; 4)此命令的参数increment可以为浮点数,但是请注意此命令的计算精度; 5)暂时没有命令DECRBYFLOAT,如果想进行浮点数的减操作,可以模仿:INCRBYFLOAT key -5.9; 6)该操作是原子性的。 |
|
| 07 | SET key value [EX seconds] [PX milliseconds] [NX|XX] |
| 功能描述:设置KEY对应的VALUE 参数说明: 从 Redis 2.6.12 版本开始, SET 命令的行为可以通过一系列参数来修改: SET key value EX second 效果等同于 SETEX key second value。 2)PX millisecond:设置键的过期时间为millisecond毫秒 SET key value PX millisecond 效果等同于 PSETEX key millisecond value。 3)NX :只在键不存在时,才对键进行设置操作 SET key value NX 效果等同于 SETNX key value 4)XX :只在键已经存在时,才对键进行设置操作。 返回结果: 1)在2.6.12版本之前,总是返回OK; 2)在2.6.12版本开始,SET操作完成时才返回OK; 3)如果设置了 NX 或者 XX ,但因为条件没达到而造成设置操作未执行,那么命令返回空批量回复(NULL Bulk Reply)。 注意事项: 1)时间复杂度:O(1) 2)如果KEY已经存在,此操作将直接覆盖旧值,且无视类型; 3)对于某个原本带有生存时间(TTL)的键来说, 当 SET 命令成功在这个键上执行时, 这个键原有的 TTL 将被清除。 |
|
| 08 | GET key |
| 功能描述:获取指定KEY的VALUE 返回结果:指定KEY的VALUE 注意事项: 1)时间复杂度:O(1) 2)如果该KEY不存在,返回NIL; 3)如果该KEY不是String类型,将返回错误信息。 |
|
| 09 | GETSET key value |
| 功能描述:原子性的设置KEY的VALUE,同时获取该KEY的原VALUE 返回结果:该KEY的原VALUE 注意事项: 1)时间复杂度:O(1) 2)如果该KEY不存在,将新建KEY,并返回NIL; 3)如果该KEY不是String类型,将返回错误信息。 |
|
| 10 | STRLEN key |
| 功能描述:获取该KEY的VALUE长度 返回结果:该KEY的VALUE长度 注意事项: 1)时间复杂度:O(1) 2)如果该KEY不存在,将返回0; 3)如果该KEY不是String类型,将返回错误信息。 |
|
| 11 | SETEX key seconds value |
| 功能描述:设置KEY对应值为VALUE,同时设置该KEY的生存时间为SECONDS秒 返回结果:操作完成时才返回OK 注意事项: 1)时间复杂度:O(1) 2)如果KEY已经存在,此操作将直接覆盖旧值; 3)该命令类似如下两条命令: SET key value EXPIRE key seconds 不同的是,SETEX是原子性的。关联值和设置生存时间两个动作会在同一时间内完成,该命令在 Redis 用作缓存时,非常实用; 4)当 seconds 参数不合法时,返回错误。 |
|
| 12 | SETNX key value |
| 功能描述:当前仅当KEY不存在时,设置KEY对应值为VALUE 返回结果:设置成功返回1,设置失败返回0 注意事项: 1)时间复杂度:O(1) 2)将 key 的值设为 value ,当且仅当 key 不存在; 3)若给定的 key 已经存在,则 SETNX 不做任何动作; 4)SETNX 是"SET if Not eXists"(如果不存在,则 SET)的简写。 |
|
| 13 | SETBIT key offset value |
| 功能描述:对KEY所储存的字符串值,设置或清除指定偏移量上的位(bit) 返回结果:指定偏移量原来储 |