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表中所有的键和值