Redis 客户端命令

可以查询连接的状态,连接的数量等。
连接过程:

  1. 客户端socket设置非阻塞模式
  2. 设置socketTCP_NODELAY属性
  3. 创建文件使劲按,监听socket数据发送

    Redis IO 多路复用

    redis底层是一个单线程模型,使用一个线程来处理所有请求,减少了进程切换的消耗

    Redis 订阅

Redis 布隆过滤器

存在 1% 的误判率,相比于set的去重功能,空间上能节省 90% 以上。

工作原理:

是一个高空间利用率的概率性数据结构,由二进制向量(位数组)和一系列随机映射函数(即哈希函数)两部分组成。

(1)添加元素:

位数组一系列hash函数组成,其中位数组的初始状态都为 0

152TA292-0.gif

添加时,使用不同的hash函数对同一个key进行计算,获得多个hash值,根据哈希值计算出一个整数索引值,然后和数组长度取余,最终获得位数组位置,将该位置的值变为 1。每个哈希值都会存在不同的位置,然后将对应位置变为 1。就完成了元素的 add 操作。

(2)判定元素是否存在:

  1. 对元素执行hash计算,得到和之前相同的位数组位置,判断所得位置是否都为 1,假如为 0 说明不存在。若都为 1 说明有可能存在。

    (3)为何是可能存在:

  2. 因为有可能两个元素同时改变了某个位置,所以存在误判。