消息队列概述
消息队列 是分布式系统中不可缺少的组件之一,主要有异步处理、应用解耦、限流削峰的功能。目前广为使用的消息队列有:
RabbitMQ
RocketMQ
Kafka
集群:强调的是计算机的物理形态与统一管理,但有时也强调软件的集群——将同一个软件(或组件或系统)部署在集群环境的各个计算机上,这也被称为集群。
分布式:指的是将一个业务...
bitfield 概述
bitfields(位域):位域是计算机中的术语,也称 位段,它是指信息在存储时,并不需要占用一个完整的字节,而只需占用一个或几个二进制位,这样做的目的是为了节约存储空间。
在 C 编程语言中,除了基本的数据类型(char、short、int、、long、float、double)外,还有一些特殊的数据类型,如下图所示:
...
bitmap概述
除了基本的常用的五大数据类型(string、hash、list、set、zset)之外,还有其他的五大特殊数据类型:
bitmap:位图
bitfield:位域
stream:流
geospatial:地理位置经纬度
HyperLogLog:一种纯数学的概率算法
bitmap 数据类型是 string 类型的拓展,其本质是一个...
回顾
zset、hash 或 list 都直接或间接使用了 ziplist。当zset、hash 中的元素个数较少且都是短字符串时,redis 的底层会使用 ziplist 作为其底层的数据。而 list 则使用了 quicklist 这种数据结构。
关于 list 底层数据结构的实现,随着版本的更替有所不同。
早期版本使用 linkedlist...
回顾
zset、hash 或 list 都直接或间接使用了 ziplist。当zset、hash 中的元素个数较少且都是短字符串时,Redis 的底层会使用 ziplist 作为其底层的数据。而 list 则使用了 quicklist 这种数据结构。
在配置文件中,有相关的配置参数:
192.168.100.3:6379> config ge...
关于 list
关于 list 底层数据结构的实现,随着版本的更替有所不同。
早期版本使用 linkedlist(双端列表)和 ziplist(压缩列表)
从 redis 3.2 开启,使用 linkedlist + ziplist 组成的 quicklist。
从 redis 7.0 开始,还是使用 quicklist,只不过将 ziplist...
回顾
在前面的文章《Redis基础篇11 — 使用命令(三)对 value 的操作命令》中我们介绍了 hash 数据类型的使用,本篇文章将带您了解 hash 数据类型的底层。
我们说 string 数据类型时,其结构为:
key <---> value
而针对 hash 数据类型,它的结构为:
key <---> value...
回顾
前面提到——「Redis 当中的字符串和 MySQL 当中的字符(char、varchar)以及 JAVA 当中的字符串(string)还不太一样,这涉及到一个东西——简单动态字符串(SDS,simple dynamic string)」
前面还提到:
string 数据类型中,key 和 value 都是 string 类型
hash 数...
概述
redis-benchmark 命令是一个用于测试 redis 性能的基准测试工具。在我们的源代码编译安装环境中,它位于这个路径位置:
Shell > ls -lhS /usr/local/redis/bin/
-rwxr-xr-x 1 root root 19M 10月 11 11:39 redis-server
-rwxr-xr-...
sort set (zset) 简述 前面提到,set 这种数据类型具有 无序性 和 不可重复性(或者称 唯一性) ,即在 set 数据类型的底层中,其仅存储 key(string 类型),不存储 value(因为都是 nil) sort set (有序集合)的说明: 会对集合中的每一个成员进行排序。因为 sort set 中的每一个成员都关联一个…