9、Redis的数据类型
1)String类型及操作
String是最简单的类型,一个Key对应一个Value,String类型是二进制安全。Redis的String可以包含任何数据,比如:jpg图片或者序列化的对象。
Set:设置key对应的值为String类型的value
例如:我们添加一个name=lizh的键值对
127.0.0.1:6379>set name lizh OK |
Setnx:设置key对应的值为String类型的value,如果key已经存在,不更新数据且返回0;如果key不存在,则插入数据且返回1。nx是not exist的意思。
127.0.0.1:6379> setnx name llll (integer) 0 |
Setex:设置key对应的值为String类型的value,并指定此键值对的有效期
例如:添加一个haircolor=red的键值对,并指定有效期为10秒。
setex haircolor 10 red OK get haircolor “red” 10秒后获取数据 get haircolor (nil) |
Setrange:设置指定key的value值的子字符串,类似于替换字符串
例如:将xiaoli的126邮箱替换为gmail邮箱
mset:一次设置多个key的值,成功返回OK表示所有的值都设置了,失败返回0表示没有任何值被设置。
msetnx:一次设置多个key的值,成功返回OK表示所有的值都设置了,失败返回0表示没有任何值被设置,但是不会覆盖已经存在的key
get:获取key对应的String值,如果key不存在返回nil
getset:设置key的值,并返回key的旧值
getrange:获取key的value值的子字符串
mget:一次获取多个key的值,如果对应key不存在,则对应返回nil
incr:对key的值做加加操作,并返回新的值
incrby:同incr类似,加指定值,key不存在时候会设置key,并认为原来的值为0
decr:对key的值做减减操作
decrby:同decr类似,减指定值。
append:给指定key的字符串追加value,返回新字符串值的长度
strlen:取指定key的value值的长度
2)hash类型
hash类型及操作
Redis hash是一个string类型的field和value的映射表,它的添加删除操作都是0(1)(平均), hash特别适合用于存储对象。相较于将对象的每个字段存成单个string类型。将一个对象存在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。
hset:设置hash field为指定值,如果key不存在,则先创建。
其中user:001可以看做一张表的记录
hsetnx:设置hash field为指定值,如果key不存在,则先创建。如果存在则返回0。
hmset:同时设置hash的多个field
hincrby:指定的hash field加上给定值
hexists:测试指定field是否存在
hlen:返回指定hash的field数量
hdel:删除指定hash的field
hkeys:返回hash的所有field
hvals:返回hash的所有value
hgetall:获取某个hash中全部的field及value