1、redis简介
Redis是一个使用 C 语言编写的、开源的高性能非关系型(NoSQL)数据库。
Redis 为键值对数据库,键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合(set)、散列表(hash)、有序集合(zset)。
与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB(键值对数据库)。
Redis 也经常用来做分布式锁。除此之外,Redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。
2、Redis有哪些优缺点?
1)优点:
读写性能优异, Redis能读的速度是110000次/s,写的速度是81000次/s。
支持数据持久化,支持AOF和RDB两种持久化方式。
支持事务,Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。
数据结构丰富,除了支持string类型的value外还支持hash、set、zset、list等数据结构。
支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。
2)缺点
我能想到的缺点只有:受物理内存的限制,redis不能用作海量数据的高性能读写,只适应于,在数据量较小场景下的操作和运算,有些局限。
3、为什么要用 Redis /为什么要用缓存?
为了追求“高性能”,和适应“高并发”场景。
redis读写的高性能前边已经多次提到了,这里不再赘述;
在实际应用中,有很多请求结果是固定的,把这些结果存入redis缓存,当请求再次过来,我们就可以操作缓存而不是再次访问数据库查询,利用缓存的高速读写,可以适应高并发场景。
4、redis在实际开发中的应用场景
1)缓存
将热点数据放到内存中,设置内存的最大使用量以及淘汰策略来保证缓存的命中率。
2)分布式锁实现
在分布式场景下,无法使用单机环境下的锁来对多个节点上的进程进行同步。可以使用 Redis 自带的 SETNX 命令实现分布式锁,除此之外,还可以使用官方提供的 RedLock 分布式锁实现。
3)计数器
可以对 String 进行自增自减运算,从而实现计数器功能。Redis 这种内存型数据库的读写性能非常高,很适合存储频繁读写的数据。
4、Redis 的持久化机制是什么?
Redis 提供两种持久化机制 RDB(默认) 和 AOF 机制:



