Redis

redis-hash命令

redis-hash命令

哈希hash是一个string类型的field和value的映射表,hash特适合用于存储对象
命令	hset key field value  
设值:hset user:1 name luke			//成功返回1,失败返回0
取值:hget user:1 name					//返回Pack
删值:hdel user:1 age					//返回删除的个数
计算个数:hset user:1 name luke; hset user:1feature handsome;
hlen user:1						//返回2,user:1有两个属性值
批量设值:hmset user:2 name luke age 18 sex man //返回OK
批量取值:hmget user:2 name age sex  //返回三行:Pack 18 man
判断field是否存在:hexists user:2 name  	//若存在返回1,不存在返回0
获取所有field: hkeys user:2		// 返回name age sex三个field
获取user:2所有value:hvals user:2			// 返回Pack 18 man
获取user:2所有field与value:hgetall user:2	//name age sex Pack 18 man值
增加1:hincrby user:2 age 1					//age+1
hincrbyfloat user:2 age 2		//浮点型加2


1,原生:set user:1:name Pack
set user:1:age	18;  set user:1:sex man;
优点:简单直观,每个键对应一个值
缺点:键数过多,占用内存多,用户信息过于分散,不用于生 产环境

2,将对象序列化存入redis
set user:1 serialize(userInfo);
优点:编程简单,若使用序列化合理内存使用率高
缺点:序列化与反序列化有一定开销,更新属性时需要把  userInfo全取出来进行反序列化,更新后再序列化到redis

3,使用hash类型:
hmset user:1 name Luke age 18 sex man 
优点:简单直观,使用合理可减少内存空间消耗
缺点:要控制ziplist与hashtable两种编码转换,且hashtable 会消耗更多内存erialize(userInfo);


(0)
分享:

本文由:xiaoshu168.com 作者:xiaoshu发表,转载请注明来源!

相关阅读