redis如何保证数据都是热点数据
摘要:背景众所周知,redis是纯内存的操作。所以速度极快。然而内存的大小是有限的。 如:mysql中有2000w的数据,redis中只存20w的数据,那么如何保证redis中的数据都是热点数据呢? 答案:redis内存数据集达到一定大小的时候,就会实行数据淘汰策略,内存的淘汰机制的初衷是为了更好地使用内
阅读全文
redis--高级应用
摘要:Redis-事务 Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作,事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行 事务的上个步骤:
阅读全文
Redis 单线程模型介绍
摘要:1. 理解单线程模型 redis 会将每个客户端都关联一个指令队列。客户端的指令通过队列来按顺序处理,先到先服务。 在一个客户端的指令队列中的指令是顺序执行的,但是多个指令队列中的指令是无法保证顺序的,例如执行完 client-0 的队列中的 command-0 后,接下去是执行哪个队列中的第一个指
阅读全文
redis 实现发布/订阅模式
摘要:类似于MQ的主题模式-只能消费订阅之后发布的消息,一个消息可以被多个订阅者消费) 1.客户端发布/订阅 1.1 普通的发布/订阅 除了实现任务队列外,redis还提供了一组命令可以让开发者实现"发布/订阅"(publish/subscribe)模式。"发布/订阅"模式同样可以实现进程间的消息传递,其
阅读全文
Redis实现队列
摘要:消息通知使用Redis实现任务队列使用列表, lpush 和 rpop 命令实现队列的概念 添加数据 public static void main(String[] args) throws InterruptedException { for (int i = 0; i < 1000; i++)
阅读全文
redis 实现分布式锁
摘要:单系统的时候可以通过 同步锁等机制实现,但是多个服务器多个进程如何实现呢。首先看一下分布式锁的必要条件: 1)原子性:加锁和释放锁的操作必须满足原子性 2)不会产生死锁,有各种原因会导致锁没有被释放从而产生死锁 3)互斥性,某个时间只能有一个线程占有锁,其他线程处于阻塞状态 4)可重入性,也就是释放
阅读全文
redis使用:Jedis工具
摘要:基本操作导入包 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.0.0</version> </dependency> 使用连接池 import redis.clients
阅读全文
redis
摘要:redis、mongdb都是非关系型数据库,一般用于key-value存储,文档型的、列存储、图型数据库、xml数据库。 1、redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 特点:1、Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次
阅读全文