要將關聯式資料庫中表格的一行記錄保持到redis中,在redis裡要採用哪一種資料型別,怎麼保存?希望能舉個具體範例
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
將java物件 序列化,然後以位元組數組儲存
可以直接用資料庫的主鍵作為redis的可以,例如<YOUR_PREFIX><PRIMARY_KEY>這種,內容的話,例如直接把資料表記錄json之後就可以
<YOUR_PREFIX><PRIMARY_KEY>
然後是一致性的問題
第一種方案是把redis的作為cache來使用,只在按照主鍵來讀取記錄時,先檢查redis裡面(get)有沒有,如果沒有則從資料庫裡面取,同時set redis中對應的值,在set時最好給記錄設定一個expire時間,這樣即使沒有主動的清掉髒數據,一段時間後也可以透過expire的機制自動拿到新的值。在資料表記錄變動時,直接刪除掉redis中的記錄即可。這是我比較推薦的比較穩健的做法。
第二種方案是直接在redis中處理全部的資料讀寫,只有在特定時機才把資料寫回資料庫中。有關寫回機制,可以考慮使用一個帶有訊息隊列,在每次redis有修改時,異步的讓數據寫回數據,可以透過一個timestamp來保證寫回到資料庫的數據是最新的;或者可以考慮使用redis在expire時機的通知機制(不過這個機制沒有保障,請見http://redis.io/topics/notifications)。
這個還挺麻煩的可以參考這篇文章http://www.cnblogs.com/enjiex/p/3618546.html
是可以支援簡單的增刪改查,而且可以結合redis的事務實現簡單的功能但是想要實現rdbms那套sql基本操作都很麻煩
綜上
乖乖地讀手冊吧,別人給你的答案木有用的,手冊裡講得很清楚,看完手冊再考慮應用場景,到實用階段的時候,有一些封裝的第三方api可以調用,實際上你自己寫也一樣,從套接字開始寫起,保管你對協議,語言,網路都有新的認識
將java物件 序列化,然後以位元組數組儲存
可以直接用資料庫的主鍵作為redis的可以,例如
<YOUR_PREFIX><PRIMARY_KEY>
這種,內容的話,例如直接把資料表記錄json之後就可以然後是一致性的問題
第一種方案是把redis的作為cache來使用,只在按照主鍵來讀取記錄時,先檢查redis裡面(get)有沒有,如果沒有則從資料庫裡面取,同時set redis中對應的值,在set時最好給記錄設定一個expire時間,這樣即使沒有主動的清掉髒數據,一段時間後也可以透過expire的機制自動拿到新的值。在資料表記錄變動時,直接刪除掉redis中的記錄即可。這是我比較推薦的比較穩健的做法。
第二種方案是直接在redis中處理全部的資料讀寫,只有在特定時機才把資料寫回資料庫中。有關寫回機制,可以考慮使用一個帶有訊息隊列,在每次redis有修改時,異步的讓數據寫回數據,可以透過一個timestamp來保證寫回到資料庫的數據是最新的;或者可以考慮使用redis在expire時機的通知機制(不過這個機制沒有保障,請見http://redis.io/topics/notifications)。
這個還挺麻煩的
可以參考這篇文章
http://www.cnblogs.com/enjiex/p/3618546.html
是可以支援簡單的增刪改查,而且可以結合redis的事務實現簡單的功能
但是想要實現rdbms那套sql基本操作都很麻煩
綜上
乖乖地讀手冊吧,別人給你的答案木有用的,手冊裡講得很清楚,看完手冊再考慮應用場景,到實用階段的時候,有一些封裝的第三方api可以調用,實際上你自己寫也一樣,從套接字開始寫起,保管你對協議,語言,網路都有新的認識