hset key field value
hsetnx:它们的关系就像set和setnx命令一样,只不过作用域由键变为field
hget key field
好,到这里会有人好奇,这里到底是怎么样的结构,能不能直观的看到这些记录,还是我在前几篇文章说到的Redis DeskTop Manager可以查看
hdel key field [field ...]
hlen key
hmget key field [field ...]hmset key field value [field value ...]
hstrlen key field
hkeys key
hvals key
hgetall key
演示说明
UserInfo getUserInfo(long id){
// 用户id作为key后缀
userRedisKey = "user:info:" + id;
// 使用hgetall获取所有用户信息映射关系
userInfoMap = redis.hgetAll(userRedisKey);
UserInfo userInfo;
if (userInfoMap != null) {
// 将映射关系转换为UserInfo
userInfo = transferMapToUserInfo(userInfoMap);
} else {
// 从MySQL中获取用户信息
userInfo = mysql.get(id);
// 将userInfo变为映射关系使用hmset保存到Redis中
redis.hmset(userRedisKey, transferUserInfoToMap(userInfo));
// 添加过期时间
redis.expire(userRedisKey, 3600);
}
return userInfo;
}
set user:1:name tomset user:1:age 23set user:1:city beijin
set user:1 serialize(userInfo)
hmset user:1 name tomage 23 city beijing
不过对于我而言,我经常用到的是string,方便,快捷,一般是存储一些玩家的登录缓存信息,或者一些全服跨服战斗的相关数据