为什么要用Redis?
1 | 内存数据库 数据存储在内存中,提供高速访问。极低的延迟 |
2 | 工作单线程 worker<br>- 采用单线程处理客户端请求,保证操作的串行化和原子性。<br>- 避免了上下文切换带来的性能损失。<br>- 多线程 IO<br>- 异步 I/O 处理由多线程处理。 |
3 | I/O 模型支撑高并发. |
4 | 键值模型 基于键值对的数据存储模型.值具有类型结构<br>- 值可以是字符串、列表、集合、哈希表等多种数据类型。 |
5 | 具有本地方法,计算向数据移动.(a,b) => 交集 |
6 | 二进制安全,Value最大512M |
Redis是多线程还是单线程?
Redis 6.0及之前版本(单线程) 6.0之后是(单线程+多线程)
请求是多线程的,但核心的内存读写操作(或者说读写计算)仍然是单线程的
Redis的持久化机制
在百万keys的Redis里面,如何模糊查找某个(某几个)key?
在 Redis 中进行模糊查找 keys 通常使用 KEYS
命令或者 SCAN
命令配合模式匹配。但是KEYS
命令在数据量大的情况下, 它可能会阻塞服务器并消耗大量资源,导致性能问题。因此,在生产环境中,推荐使用 SCAN
命令来实现类似的功能。
模糊查找 看数据量多少 ,多用scan扫描,少的用keys
Redis的数据类型
常用的有 字符串 列表List 集合Set 有序集合sorted sets 哈希Hash(Map)