什么是Redis
redis是一个高性能的key-value数据库,它是完全开源免费的,而且redis是一个NOSQL类型数据库,是为了解决高并发、高扩展,大数据存储等一系列的问题而产生的数据库解决方案,是一个非关系型的数据库。但是,它也是不能替代关系型数据库,只能作为特定环境下的扩充。
redis是一个以key-value存储的数据库结构型服务器,它支持的数据结构类型包括:字符串(String)、链表(lists)、哈希表(hash)、集合(set)、有序集合(Zset)等。为了保证读取的效率,redis把数据对象都存储在内存当中,它可以支持周期性的把更新的数据写入磁盘文件中。而且它还提供了交集和并集,以及一些不同方式排序的操作。
安装
Redis可视化工具
redis的应用场景
1、redis由于数据的读取和操作都在内存当中操作,读写的效率较高,所以经常被用来做数据的缓存。把一些需要频繁访问的数据,而且在短时间之内不会发生变化的,放入redis中进行操作。从而提高用户的请求速度和降低网站的负载,降低数据库的读写次数,就把这些数据放到缓存中。
2、一些常用的实时计算的功能。需要实时变化和展示的功能,就可以把相关数据放在redis中进行操作。大大提高效率。
3、消息队列,经常用来构建类似实时聊天系统的功能,大大提高应用的可用性。
Redis的优点和缺点
优点
- redis数据读写速度非常快,因为它把数据都读取到内存当中操作,而且redis是用C语言编写的,是最“接近“”操作系统的语言,所以执行速度相对较快。
- redis虽然数据的读取都存在内存当中,但是最终它是支持数据持久化到磁盘当中。
- redis提供了丰富的数据结构。
- redis的所有操作都是原子性,支持事务,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行。
- redis支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。
缺点
- 缓存和数据库双写一致性问题
- 缓存雪崩问题
- 缓存击穿问题
- 缓存穿透问题
- 缓存的并发竞争问题
redis 学习思路
- 学习 redis 数据结构和数据类型
- 学习 redis 用途:绘画缓存、延时队列、消息队列、发布订阅…
- 学习 redis 事务:事务消息、事务失败处理
- 学习 redis 持久化原理性能分析:rdb、aof
- 学习 redis 过期策略、内存淘汰
- 学习 redis 持久化机制、哨兵模式、主从复制
- 学习 redis 集群
- 学习 redis 分布式锁
- 解决 redis 雪崩、击穿、穿透、双写一致 问题