string是最简单的类型,操作类似于memcached。 string类型是二进制安全的。意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象。从内部实现来看其实string可以看作byte数组,最大上限是1G字节,下面是string类型的定义:
struct sdshdr { long len; long free; char buf[]; };len是buf数组的长度。
free是数组中剩余可用字节数,它本质上就是个byte数组,可以包含任何数据。buf是个char数组用于存贮实际的字符串内容。另外string类型可以被部分命令按int处理,比如incr等命令。
strings类型常用命令
set
设置key对应的value。成功返回ok,失败返回0。
语法:setkeyvalue
redis 127.0.0.1:6379> set domain weixinpy OK redis 127.0.0.1:6379>setnx
设置key对应的value。如果key已经存在,则设置不生效,并返回0。nx:notexist。
语法:setnxkeyvalue
redis 127.0.0.1:6379> get domain "weixinpy" redis 127.0.0.1:6379> setnx domain weixinpy_new (integer) 0 redis 127.0.0.1:6379> get domain "weixinpy" redis 127.0.0.1:6379> setex设置key对应的value,并指定此键值对应的有效期。ex:expire。成功返回ok。
语法:setexkeyexpire-argvalue
redis 127.0.0.1:6379> setex tmpdomain 10 weixinpy.com OK redis 127.0.0.1:6379> get tmpdomain "weixinpy.com" redis 127.0.0.1:6379> get tmpdomain (nil) redis 127.0.0.1:6379>setrange
设置key对应的value的子字符串(从range-arg开始,不包括range-arg)。成功返回value长度。
语法:setrangekeyrange-argvalue
redis 127.0.0.1:6379> setrange domain 8 gmail.com (integer) 18 redis 127.0.0.1:6379> get domain "weixinpy@gmail.com" redis 127.0.0.1:6379>mset
一次设置多个key