数据库社区

数据库社区

Redis内部数据结构——词典dictType以及哈希算法的选择

词典dict概览提到了使用Hash Table作为Redis 词典的内部实现,需要考虑三个要点。这章讨论第一个问题:Redis哈希算法的选择。哈希是把任意长度的输入通过哈希算法转换为固定长度的值。根据不同的使用场景,人们设计出了多种哈希算法,我们常见的有CRC,MD5,HMAC,SHA-256等等,关于多种哈希算法,可以在查看wiki。Redis作为一个高性能的key-value内存服务器,哈希算
2个月前更新 8分钟阅读

单节点ElasticSearch 7 docker-compose.yml

Elasticsearch 7 集群启动在开发环境,往往只需要启动单节点的ElasticSearch进行开发。对于ElasticSearch 6,启动一个单节点集群和多节点集群是相同的。从ElasticSearch 7开始,首次启动集群,需要在集群的主节点中明确定义初始主节点集(即设置参数cluster.initial_master_nodes),集群启动过程中做一个引导启动检查,称为bootst
6个月前更新 8分钟阅读

Redis内部数据结构——词典哈希表dictht

这一节主要讨论”如何解决Hash碰撞“的问题,去理解Redis的哈希表dictht。解决Hash冲突方法我们知道,使用哈希函数对输入计算出的哈希值是相同,称为哈希碰撞。发生哈希碰撞通常有以下两种做法处理冲突的存储:链表法开放寻址法链表法链表法是Redis选择解决hash冲突的方法,数据结构为:数组 + 链表。数组的每个位置,称之为桶(bucket)或槽(slot)。当计算的hash值在同一个槽位时
9个月前更新 7分钟阅读

Redis内部数据结构——dict词典概览

了解词典在了解Redis如何实现dict之前,先梳理下dict特征以及使用。词典数据结构通常用于以键值对的方式存储数据。词典存放了一组键,每个键关联一个值。词典存放的键是唯一的,通过查询词典里的键,可以获取键对应的值。如果存储重复的键,会导致新值覆盖键关联的旧值。词典数据结构支持以下几种操作:addOrUpdate(K key, V v):以键值对的形式插入数据,如果key在词典中存在,会用新值覆
9个月前发布 1分钟阅读

MySQL设置会话变量:把查询结果赋值给变量

MySQL设置变量有两种方式:会话变量和存储过程变量。1、使用set或select直接赋值,变量名以@开头例如:set @var=1; 可以在一个会话的任何地方声明,作用域是整个会话,称为用户变量。2、以declare关键字声明的变量,只能在存储过程中使用,称为存储过程变量。例如: declare var1 int default 0; 主要用在存储过程中,或者是给存储传参数中。两者的区别是: 在
2年前发布 1分钟阅读

Kafka集群搭建

Kafka介绍 Kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性: 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。 高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数十万的消息。 支持通过kafka服务器和消费机集群来分区消息。 支持Hadoop并行数据加载。 Kafka的目的是提供一个
2年前更新 1分钟阅读
数据加载中