把表名轉換為key前綴, 第二端放置表用於區分區key的字段–對應mysql中的主鍵的列名如userid。
3.放置主鍵值,如1,2,3,…..,a,b,c。
4.放要存儲的列名
user表 userid user_name password email 1 zhangsan toor 666@abc.com
set user:userid:1:user_name zhangsan
set user:userid:1:password toor
set user:userid:1:email 666@abc.com
keys user:userid:1*
在分布式存儲時, 只對user:userid:1進行hash,只要是同一個人的信息都將hash到同一台服務器。 注意
在關系型數據中,除了主鍵外,還有可能其他列來進行查詢。
如上表,user_name也是極其頻繁查詢的,往往這樣的列也是加了索引的。
轉換到k-v數據中,則也要相應的生成一條按照該列為主的key-value
set user_name:zhangsan:userid 1
這樣,我們就可以根據user_name:zhangsan:userid,查詢出userid為1
再根據user:userid:1:列名
查詢出用戶的信息。
如果經常要根據email來查詢,那么同樣的需要維護email->id的映射,雖然這樣造成了冗余,但是提升了速度,減少了時間,用空間換時間。
空間和時間不可兼得。
以上是雲棲社區小編為您精心准備的的內容,在雲棲社區的博客、問答、公眾號、人物、課程等欄目也有的相關內容,歡迎繼續使用右上角搜索按鈕進行搜索設計 , redis 表映射 ,以便於您獲取更多的相關知識。