使⽤字符串范例,每个属性⼀个键。 set user:1:name James set user:1:age 23 set user:1:city Beijing 优点:实现简单,针对个别属性变更也很灵活。 缺点:占⽤过多的键,内存占⽤量较⼤,同时⽤⼾信息在 Redis 中⽐较分散,缺少内聚性,所以这种⽅案根本没有实⽤性。 2. 序列化字符串范例,比方 JSON 格式
set user:1 颠末序列化后的⽤⼾对象字符串 优点:针对总是以团体作为操作的信息⽐较合适,编程也简单。同时,如果序列化⽅案选择合适,内存的使⽤效率很⾼。 缺点:本⾝序列化和反序列须要⼀定开销,同时如果总是操作个别属性则⾮常不灵活。
3. 哈希范例
hmset user:1 name James age 23 city Beijing 优点:简单、直观、灵活。尤其是针对信息的局部变更或者获取操作。 缺点:须要控制哈希在 ziplist 和 hashtable 两种内部编码的转换,大概会造成内存的较⼤斲丧。 关于内聚和耦合