色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

利用redis怎么從數據庫找到數據?根據什么找的?

錢多多2年前11瀏覽0評論

Redis,是一個內存存儲的非關系數據庫,支持字符串、列表、集合、散列表、有序集合五類存儲類型。

先看怎么使用

  1. 啟動redis-cli客戶端

  2. 執行"set name wukong",將name的值設為悟空

  3. 執行"get name", 返回"wukong"

  4. 根據key(即“name”)返回value("wukong")

是不是有點類似python的內置dict數據類型,猜測底層算法應該是類似Hash Map原理。

再說算法實現原理

看了下Redis的官方文檔,沒有講到內部的算法原理,只得翻github的源代碼,稍微瀏覽了下,是用C語言實現的,代碼結構很清晰,代碼量也很緊湊。

除了client/server和cluster(集群的代碼),答案應該在'dict.h'和'dict.c'兩個文件:

This file implements in memory hash tables with insert/del/replace/find/ get-random-element operations. Hash tables will auto resize if needed tables of power of two in size are used, collisions are handled by chaining。

簡單點說,我覺得redis可以看成是一個分布式的Hash Table,算法上基于分布式集群和HashMap原理(或其變形、擴展)實現的,應該是對key-value模式進行了擴展,提供快速的數據操作GET/SET/DEL等、支持數據持久化。

如果再想了解更具體細節的話,讀src目錄下的C源碼吧。