redis数据库笔记第9篇:在哪个服务器上写数据:CRC16,Python交互

29 阅读1分钟

🚀🚀🚀本篇主要内容

在哪个服务器上写数据: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源码地址github.com/Grokzen/red…

* 创建⽂件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基本不支持事务
* 两者在不断地