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