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);
本文由:xiaoshu168.com 作者:xiaoshu发表,转载请注明来源!