Redis中String与Hash对比

String

优点:

  • 直观
  • 可以部分更新

缺点:

  • List item
  • 内存占用较大
  • key较为分散

Hash

优点:

  • 直观
  • 节省空间,支持Hashtable和Ziplist,比String节约空间5倍
  • 可以部分更新

缺点:

  • 编程稍微复杂
  • ttl不好控制,不能单独设置某个值的过期时间

Redis 选择hash还是string 存储数据?

具体使用哪种数据结构,其实是需要看你要存储的数据以及使用场景。

如果存储的都是比较结构化的数据,比如用户数据缓存,或者经常需要操作数据的一个或者几个,特别是如果一个数据中如果filed比较多,但是每次只需要使用其中的一个或者少数的几个,使用hash是一个好的选择,因为它提供了hget 和 hmget,而无需取出所有数据再在代码中处理。

反之,如果数据差异较大,操作时常常需要把所有数据都读取出来再处理,使用string 是一个好的选择。

当然,也可以听Redis 的,放心的使用hash 吧。

还有一种场景:如果一个hash中有大量的field(成千上万个),需要考虑是不是使用string来分开存储是不是更好的选择。

你可能感兴趣的:(日常记录,redis,string,hash)