布隆过滤器原理、使用场景

什么是Bloom Filter?布隆过滤器本质上是一种高效的数据结构,概率型的数据结构。特点是能够高效的插入和查询,可以告诉你“某个数据一定不存在或者可能存在”,但并不能告诉你一定存在。相比于传统的List,Set等数据结构,它的占用空间更小,缺点是返回的结果是概率性的,不是确切的。Bloom Filter实现原理实现原理原理:当一个元素被加入集合时,通过k个散列函数将这个元素映射成一个bit数组

- 阅读全文 -

缓存淘汰--LRU算法

缓存是什么?计算机里通常讲的缓存就是指一片高速数据存储层,现在大部分系统的设计通常使用Memcache或Redis来作为缓存介质,缓解DB的负载压力。举个简单的例子,当多个浏览器访问不同的页面时,会先从缓存层返回数据给浏览器,但是每天访问的页面不计其数,涉及到的数据很难估计。如果把所有数据都缓存下来,需要大量的存储介质。而缓存通常用的是比较昂贵的硬件,比如RAM。缓存的容量有限,但是数据是无限的,

- 阅读全文 -

redis事务机制、分布式锁、数据一致性

redis事务机制redis中的事务是一组命令的集合。使用MULTI命令来开启事务,这期间的所有命令都会被放到一个命令队列里,使用EXEC命令来触发事务,将队列中的所有命令执行。127.0.0.1:6379> multi OK 127.0.0.1:6379> lpush nums 1 QUEUED 127.0.0.1:6379> lpush nums 3 QUEUED

- 阅读全文 -

redis五种数据结构的使用场景

String-字符串字符串类型是redis中最为基础的数据结构。存储最简单的key-value结构value可以为字符串、整型或浮点型对于整型或浮点型可以执行自增或自减操作使用场景常用的缓存功能:利用redis做缓存,配合其他数据库,可以大大加快系统的读写速度计数器:例如web应用,想要统计用户每日的点击量,只需要将用户ID加上时间戳做key,并在用户每次点击时,向redis发送INCR命令,执行

- 阅读全文 -

Redis集群高可用、哨兵

redis在生产中如何保证集群的高可用?高可用指的是尽量减少服务的停工时间,保证redis的高可用,就是redis就算某个节点出现宕机,也不会影响到整个服务。这就需要redis节点之间的数据同步,需要用到redis主从复制机制,而这个机制的数据交互靠的是redis持久化机制。用来管理监控多个redis服务器需要用到哨兵机制,但是主从复制机制+哨兵机制还不足以保证redis的高可用,为什么呢?想想若

- 阅读全文 -