redis存储对象用什么存储类型好?

刚学redis不太懂,
例如通过hset存储了用户信息和房间信息到redis中
采用hset(key,field,value)存储类型
key对应"room",field对应roomID,value对应room的Json字符串
key对应"user",field对应userID,value对应user的Json字符串

如果需要条件查询,每次都要将value转换成Java对象,再通过getset方法获取对象属性进行比对,如果数据量较大则要遍历每一个roomId对应的value,比较麻烦,感觉不可取,有什么其它存储方法,或者有像mysql那样的条件查询语句吗

阅读 6.1k
1 个回答

redis一般不做条件查询的,主要用于缓存。比如 user 表,缓存的时候用 userID 做 key,查询时就只能用 userID 去查。基本上已经可以满足多数情况下的查询了,其他复杂条件的查询到数据库里面查。
另外,结构上也没必要用 hash ,就最简单的 string 就行,key 是 userID,value 是一个序列化的对象,包括用户表所有的字段和值。为了避免 key 的全局冲突,需要使用 uuid 。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题