redis
文章平均质量分 64
沉墨的夜
淑女靠修养,少女靠打扮,女人靠气质,而我靠内涵
展开
-
redis实现分布式锁
需要注意的是,由于分布式系统中的时钟可能存在不一致的情况,因此在设置锁的过期时间时,需要使用基于时钟的算法,例如基于Redis的时间戳。同时,如果需要保证锁的可重入性,可以使用Redis的incr和decr命令记录锁的持有数量,避免在同一个线程中多次获取锁时出现问题。需要注意的是,在Java中,需要引入Redis客户端库,例如Jedis库,才能与Redis进行交互。此外,为了避免锁被一直占用而导致其它线程无法获取锁,可以使用Java中的Thread.sleep方法来等待一段时间后再次尝试获取锁。原创 2023-02-22 21:10:54 · 237 阅读 · 0 评论 -
redis实现布隆过滤器
同时,为了避免哈希函数之间的冲突,需要选择一组不同的哈希函数,并确保哈希函数的散列函数的输出值的分布尽可能均匀,以减少误判的可能性。另外,需要注意的是,布隆过滤器在使用中可能会产生一定的误判率,即某个字符串被判定为存在于布隆过滤器中,但实际上并没有添加过。对于每个要查询的字符串,同样将其传入k个哈希函数中,得到k个位置,检查这些位置上的位是否都为1。对于每个要加入布隆过滤器的字符串,将其分别传入k个哈希函数中,得到k个位置,并将这些位置上的位都设为1。如果所有位置上的位都为1,则可能存在误判;原创 2023-02-22 22:22:38 · 407 阅读 · 0 评论 -
redis数据结构及应用举例一
还可以使用HSET、HGET、HMSET、HMGET等函数实现用户信息、商品信息等功能,使用HINCRBY实现计数器、商品库存等功能,使用HDEL实现删除用户信息、删除商品信息等功能,使用HEXISTS判断用户信息是否存在、判断商品信息是否存在等功能。还可以使用LPUSH、RPUSH、LPOP、RPOP等函数实现用户消息队列、商品评论等功能,使用LINDEX、LLEN、LRANGE等函数查看用户消息、查看商品评论等信息,使用LREM删除用户消息、删除商品评论等信息。应用举例:标签、好友列表、共同关注等。原创 2023-02-22 22:32:14 · 155 阅读 · 0 评论 -
redis数据结构及应用举例三之HyperLogLog
HyperLogLog算法的计数精度取决于哈希函数和子集划分的数量,如果哈希函数的分布比较均匀,并且子集的数量足够大,那么HyperLogLog的计数精度可以达到比较高的水平。HyperLogLog算法的基本思路是通过哈希函数将每个元素映射到一个指定的区间内,然后统计区间内不同元素的数量,从而得到集合中不同元素的数量。在统计过程中,为了降低内存的占用量,HyperLogLog采用了随机化采样的方式,将集合划分为多个子集,每个子集进行单独的统计,最后对所有子集的计数结果进行加权平均,得到最终的统计结果。原创 2023-02-23 09:10:18 · 265 阅读 · 0 评论 -
Redis数据同步机制
哨兵模式可以自动检测主节点的状态,当主节点发生故障时,会自动将一个从节点切换为主节点。切换过程中,从节点会先将自己的数据与主节点保持一致,然后才能成为新的主节点。它的原理是将主节点的数据复制到从节点,使得从节点的数据与主节点保持一致。需要注意的是,主从复制是异步的,从节点与主节点的数据不是实时同步的。2)主节点在接收到SYNC命令后,开始执行BGSAVE命令,将数据持久化到磁盘中,并将生成的RDB文件发送给从节点。4)从节点开始接收主节点的增量数据,并将其应用到自己的数据集中,保持与主节点的同步。原创 2023-02-23 09:11:07 · 3147 阅读 · 0 评论 -
redis数据结构及应用举例二
应用举例:查找用户1的兴趣爱好中不在用户2的兴趣爱好中的元素、查找购物车1中的商品不在购物车2中的商品中的元素等。原创 2023-02-23 09:11:08 · 66 阅读 · 0 评论 -
redis数据备份与恢复
相比于RDB持久化,AOF持久化可以提供更加精确的数据备份和恢复,但是会导致更高的写入延迟和更大的AOF文件大小。RDB持久化的原理是将Redis的内存数据集快照写入磁盘中的RDB文件。在出现数据丢失或数据错误时,可以通过将备份的RDB文件重新加载到Redis中,来恢复数据。需要注意的是,在进行备份和恢复操作时,要确保Redis的可用性和数据完整性。除了RDB和AOF持久化外,Redis还提供了多种备份与恢复命令,可以在不停止Redis服务的情况下对数据进行备份和恢复。原创 2023-02-23 09:11:32 · 1434 阅读 · 0 评论 -
redis部署方式
哨兵模式是主从复制的增强版。哨兵模式是Redis提供的一种高可用性解决方案,其通过监控Redis主节点的状态,实现自动故障转移,提高Redis系统的可用性。哨兵模式的核心是哨兵进程,它会周期性地检测主节点的状态,当主节点出现故障时,哨兵会自动将一个从节点切换成主节点,从而保证系统的可用性。需要注意的是,哨兵模式的选举机制是基于投票的,每个哨兵进程都有一票,当票数超过半数时,就会选举出领袖哨兵。总的来说,哨兵模式的选举机制通过多个哨兵进程之间的协作,实现了主节点的自动故障转移,提高了Redis系统的可用性。原创 2023-02-23 09:13:11 · 1677 阅读 · 0 评论