Redis系列-string类型和hash类型(转)

来源:互联网 发布:linux 安装sip 编辑:程序博客网 时间:2024/04/29 08:07

http://blog.csdn.net/sdn_superuser/article/details/13998843

键可以包含 字符串、哈希、链表、集合有有序集合。本篇讲的是string类型和hash类型

启动redis 

redis-server

启动如下



我这个没有在后台启动,单独一个终端启动,用户也可以配置后台启动(配置文件daemonize 改为 yes),单独的终端有个好处可以观看一些存取信息。


现在需要重新开一个终端,输入 redis-cli,出现下图则表示客户端连接成功



redis 数据类型 String 

最简单的数据类型 一个Key对应一个Value,String类型是二进制安全的。

redis的String可以包含任何数据,比如jpg图片或者序列化对象 


set 设置key对应的值为string类型的value

get 获取 一个key对应一个value 



setnx设置key对应的值为string类型的value,如果key已经存在,则返回0,并且设置不更新,

如果不存在,返回1,更新成功 nx(not exists) 



setex 设置key对应的值为string类型的value,并指定此键值对的有效期。 

setex hirecolor 10 red 设置10秒过期 超时返回 nil 

ttl hirecolor   查看剩余生存时间


此时我们 执行get hirecolor 返回nil


setrange设置指定key的value值的子字符串 

setrange name 6 gmail.com(从第六个字符开始替换,后面多余的字符不删除。)  返回新的value的长度,如图中的15



mset 一次设置多个key值,成功返回OK,失败返回0 

msetnx (和上面的setnx类似)一次设置多个key的值,成功返回OK,表示所有的值都设置了,失败返回0表示没有任何值被设置,但不会覆盖已经存在的值。一个键值没有设置成功,其他键都不会设置成功

mget 批量获取 mget name1 nam2 name3 name4



我们现在知道了get是 获取一个值 

这里说的是getset  

getset 设置一个新值,返回一个旧值。 

getrange 获取子字符串 getrange name 0 5


p.s 图片水印很烦人?怎么去掉?

incr age   对key的值做加操作 incr age   age必须是数字,否则会报错

incrby age 100 加指定的值这里的


incrby可以设置某一个键 

incrby age 100 

incrby age -100



decr对key的值做减操作 传正数- 传负数+ decrby   这里不再演示了


append 给指定key的值追加value,返回新字符串

strlen 取指定key的value的长度





hashes类型 

redis hash 是一个string类型的filed和value的映射表。 

它的添加 删除操作时间复杂度都是0(1)(平均) hash特别适合用于存储对象

相较于将对象的每个字段存成单个string类型,将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。

hset 设置hash field为指定值,如果key不存在,则先创建。 

hset myhash filed Hello 

hset user:001 name jackson 

hget user:001 name 



hsetnx 设置hash filed 的指定值,如果key不存在,则先创建,如果存在返回0



hmset 同时设置hash的多个filed. 

hmget 同时获取hash的多个filed. 

hmsetuser:003 name ljn age 24 sex 1 

hmget user:003 name age sex



指定的hash filed加上给定的值 

hincrby user:003 age 5   (返回修改过后的值)



hexists 测试指定的filed是否存在 如果有 返回1,没有返回0 

hexists user:003 age



hlen 指定hash的filed的数量 

hlen user:001 

hlen user:003  返回3


hdel 删除指定hash的filed 

hdel user:003 age

hget user:003 age



hkeys 返回所有的字段 

hkeys user:003

hvals 返回所有的value 

hvalsuser:003 

hgetall  返回某个hash全部的filed和value 

hgetall user:003