-
1 # 程式設計字典
-
2 # 我是蛋卷
redis是用純C寫的一個快取資料庫實現吧,如果你是要用redis,那其實和你本身會不會C++也沒有關係。
現多的業務層開發都在用redis,包括JAVA,PHP等,這是用來放在實體資料庫前當快取提高效能用的,和你用什麼語言不相關。
如果你們的業務對redis要求很高,需要用到一個很大的叢集或是效能要求,那建議看一下,你不深入瞭解,其實很難用好,網上人云亦云的東西很多,但不少是有坑的,並不能當成生產環境的經驗。
-
3 # 犍為真人
作為從事底層C++開發的程式設計師,我認為很有必要去學習一下redis的原始碼。redis是一種非常高效的記憶體資料庫。幾乎是把計算機效能壓榨到了極限。而底層C++程式設計師大部分都是從事的高效能開發,要大量與記憶體打交道。這區別於應用級開發,他們往往更喜歡用現成的資料庫和重量級框架,更側重業務邏輯而不是底層實現。後者沒有必要學習redis的原始碼,會使用就可以了。而C++程式設計師學習redis原始碼,也不是主要目的如何用好redis,而是如何借鑑它先進的設計思想。
redis的程式碼寫得非常優秀,程式碼量也不是特別大。記憶體分配、動態字串、列表、集合、字典等的設計都非常巧妙。真的就是資料結構和演算法的成功實踐範本!
光是動態字串的設計,就很值得借鑑。涉及到記憶體預先分配,記憶體重複利用,32位元組以下的字串如何嵌入(棧上分配)。它的字串不是以\0結尾,也不是char[255]或char*這麼簡單粗暴。但是效率卻比傳統的方式更高效。
如果記憶體部分看完了,有時間,還可以瞭解一下它簡潔的網路通訊和叢集功能,都很值得學習。這些思想,都可以或多或少地用到自己的底層程式碼上面。
redis目前沒有Windows的官方實現,說明它為了追求簡潔高效,並沒有考慮跨平臺。
要自己去從頭摸索redis的原始碼,還是比較有難度的,建議找一些書籍或部落格去先了解一下大致脈絡。
回覆列表
看下教程結合自己的基礎就知道自己需不需要下功夫了
Redis教程http://codingdict.com/article/7239
Redis 簡介
Redis 安裝
Redis 配置
Redis 資料型別
Redis 資料備份與恢復
Redis 安全
Redis 效能測試
Redis 客戶端連線
Redis 管道技術
Redis 分割槽Java 使用
RedisPHP 使用
RedisRedis 命令
Redis 鍵(key)
Redis 字串(String)
Redis 雜湊(Hash)
Redis 列表(List)
Redis 集合(Set)
Redis 有序集合(sorted set)
Redis HyperLogLogRedis 釋出訂閱
Redis 事務
Redis 指令碼
Redis 連線
Redis 伺服器