redis数据库笔记第9篇:在哪个服务器上写数据:CRC16,Python交互
【摘要】 Redis简介 推荐阅读 为什么要有集群 集群的概念 搭建集群 参考阅读 学习目标 nosql介绍 NoSQL:一类新出现的数据库(not only sql) NoSQL和SQL数据库的比较: 学习时长 配置 核心配置选项 参考资料 服务器端 客户端 string类型 保存 获取 删除 键命令 hash类型 增加、修改 list类型 增加 set类型 数据操作行为 Strict
🚀🚀🚀本篇主要内容
在哪个服务器上写数据: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源码地址[
-
创建⽂件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基本不支持事务
* 两者在不断地
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)