redis 的字符串和哈希對比
相同點和不同點
- 相同點:
- 首先是他們有很多效果類似的命令,比如set和hset,mset和hmset等等
- 大多數情況下使用字符串存儲的場景使用hash也可以實現。
- 不同點
- 他們的存儲結構決定了他們有一些本質的差異
使用hash散列的優勢
- 使用hash可以將數據放在同一個地方方便管理,而不必用字符串將數據放在整個數據庫,而且還可以避免誤操作。
- 使用hash散列既可以減少創建鍵的數量又可以避免鍵名沖突。
- 使用hash散列比使用字符串鍵更節約內存。因為在數據庫中創建key都有數據庫附加的管理信息(比如鍵的類型,最后一次訪問時間等等),所以keys越多,服務器在存儲附加管理信息方面消耗的內存就越多,同時花在管理數據庫中key的cu'p也會越多。而且redis本事也會對hash的存儲做一些底層的優化,內存消耗更少。
特定情況下使用字符串
- 使用過期功能
- 因為redis的過期功能只能對鍵進行操作而不能對散列鍵的field進行操作。
- 對二進制存儲的命令
- 因為redis目前只支持對字符串鍵進行setbit,getbit,bitop等二進制相關的命令操作。