ere2w 发表于 2015-3-20 08:05:16

redis string和hash类型操作

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

页: [1]
查看完整版本: redis string和hash类型操作