大部分摘至:https://www.runoob.com/redis/redis-intro.html
Redis是一个开源免费的、使用 C语言 编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis 优势
- 性能极高 –– Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 –– Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子性–– Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。(原子性操作不允许中间插入操作)
- 丰富的特性 –– Redis还支持 publish/subscribe(发布-订阅), 通知, key 过期等等特性。
为什么说redis中的string是二进制安全的?因为Redis是C语言编写,通过二进制传输,中间不涉及编解码。
二进制安全的特点:
1):编码、解码发生在客户端,执行效率高。
2):不需要频繁的编码解码,不会出现乱码
Redis支持多个数据库,并且每个数据库的数据是隔离不能共享的(但又不是真正的隔离,例如 flushall 清空一个redis实例中所有的数据库的数据,在一个数据库中执行,可以影响到所有的数据库),并且是基于单机,如果是集群就没有数据库的概念。
数据库的命名:
一个redis实例中的数据库的命名都是数字,从0开始,redis默认支持16个数据库(可以通过配置文件修改)。redis不支持自定义数据库的名字,都是以编号命名,redis也不支持为每个数据库设置不同的访问密码。
select 1: 选择数据库 1
二八定律: https://blog.csdn.net/yinjing8435/article/details/71024202
冷数据与热数据:https://www.jianshu.com/p/a648580d9ac9
缓存穿透,缓存雪崩,缓存击穿:https://baijiahao.baidu.com/s?id=1619572269435584821&wfr=spider&for=pc 讲得很清楚