動態

詳情 返回 返回

redis數據庫筆記第9篇:在哪個服務器上寫數據:CRC16,Python交互 - 動態 詳情


🚀🚀🚀本篇主要內容

在哪個服務器上寫數據:CRC16

  • redis cluster在設計的時候,就考慮到了去中⼼化,去中間件,也就是説,集羣中 的每個節點都是平等的關係,都是對等的,每個節點都保存各⾃的數據和整個集 羣的狀態。每個節點都和其他所有節點連接,⽽且這些連接保持活躍,這樣就保 證了 只需要連接集羣中的任意⼀個節點,就可以獲取到其他節點的數據
  • Redis集羣沒有並使⽤傳統的⼀致性哈希來分配數據,⽽是採⽤另外⼀種叫做哈希 槽 (hash slot)的⽅式來分配的。redis cluster 默認分配了 16384 個slot,當 set⼀個key 時,會⽤CRC16算法來取模得到所屬的slot,然後將這個key 分到哈 希槽區間的節點上,具體算法就是:CRC16(key) % 16384。所以 在測試的 時候看到set 和 get 的時候,直接跳轉到了7000端⼝的節點

Python交互

  • 安裝包如下

    pip install redis-py-cluster
  • redis-py-cluster源碼地址https://github.com/Grokzen/redis-py-cluster
  • 創建⽂件redis_cluster.py,示例碼如下
from rediscluster import *
if __name__ == '__main__':
  try:
    # 構建所有的節點,Redis會使⽤CRC16算法,將鍵和值寫到某個節點上
    startup_nodes = [
        {'host': '192.168.26.128', 'port': '7000'},
        

  
  
# 學習目標
  
  


* 能夠描述出什麼是 nosql
* 能夠説出 Redis 的特點


  
  

# nosql介紹
  
  



  
  
## NoSQL:一類新出現的數據庫(not only sql)
  
  


* 泛指非關係型的數據庫
* 不支持SQL語法
* 存儲結構跟傳統關係型數據庫中的那種關係表完全不同,nosql中存儲的數據都是KV形式
* NoSQL的世界中沒有一種通用的語言,每種nosql數據庫都有自己的api和語法,以及擅長的業務場景
* NoSQL中的產品種類相當多:

   * Redis
   * Mongodb
   * Hbase hadoop
   * Cassandra hadoop



  
  
## NoSQL和SQL數據庫的比較:
  
  


* 適用場景不同:sql數據庫適合用於關係特別複雜的數據查詢場景,nosql反之
* **事務** 特性的支持:sql對事務的支持非常完善,而nosql基本不支持事務
* 兩者在不斷地
user avatar alibabawenyujishu 頭像 edonsoft 頭像 nihaojob 頭像 qingzhan 頭像 romanticcrystal 頭像 milton 頭像 Asp1rant 頭像 lyhabc 頭像 feibendemaojin 頭像 coderleo 頭像 evilboy 頭像 chenxiang_594a1cea112c2 頭像
點贊 24 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.