Redis 的数据类型
String类型及操作
String是最简单的类型,一个Key对应一个Value,sting类型是二进制安全的。Redis的string可以包含任何数据,比如jpg图片或者序列化的对象。
例子:
set name gxj
get name
输出:gxj
Setnx:设置key对应的值为string类型的value,如果key 已经存在,则返回0,nx是not exist的意思。
例子:
set name zjz
回车:则返回0,如果不存在,则会设置值
setex: 设置key对应的值为string类型的value,并指定此键值对应的有效期,单位为S
例子: setex name 10 zjz,此设置会覆盖此前设置的相同的键,但是10秒后会过期,返回 nil
setrange: 设置指定的Key的value值的子字符串
set email zdh@163.com
setrange eamil 4 qq.com
输出: zdh@qq.comm
mset 一次设置多个key的值,成功则返回OK,表示所有值都设置了,失败则返回0表示没有任何值被设置
例子:
mset key1 k1 key2 k2 key3 k3
mget key1 key2 key3
返回: k1
k2
k3
msetnx : 一次设置多个key的值,成功则返回OK,表示所有值都设置了,失败返回0,表示没有任何值被设置,但是不会覆盖以前设置的key
比如原来存在key3
现在设置
msetnx key8 8 key9 9 key3 3
返回0,则key8也不存在,key3值仍然为以前的值
getrange 获取key的value的子字符串
getrange email 0 5 获取email 0到5的字符
incr 递增加1
set num 1
incr num 输出2
incrby num 5 每次加5,如果为负,则每次减
decr num 每次减1
decrby num 5 每次减5,负数则每次加5
append email 'test' 追加test到email的值中
strlen email 指定键的value的字符串长度
hash数据类型
redis hash 是一个string类型的field和value的映射表,它的添加和删除操作,都是0和1,hash特别适合于存储对象,相较于将对象的每个字段存为单个的string类型,将一个对象存储在hash中,会占用更少的内存空间,并且更方便的存储整个对象。
hset user001 name zjz
hset user001 age 1
hget user001 name 输出:zjz
hsetnx: 设置hash filed为指定值,如果key不存在,则创建,否则返回0
hmset,hmget 批量设置,获取
hincrby user001 age 2 一次增加2岁,负则减少
hexists user001 age 查看age是否存在
hlen user001 返回hash对象设置的键数
hdel user001 age 删除键
hkeys user001 返回hash表中所有的字段
hvals user001 返回hash表中所有的value
hgetall user001 返回hash表中所有的键和值