redis|青训营

51 阅读2分钟

#青训营笔记创作活动 Redis 简介

Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库,类似于 Java 中的 Map<key, value>。

Redis 与其他 key - value 缓存产品有以下特点:

(1)Redis 数据库中所有数据都存储在内存中,由于内存的读写速度远快于硬盘,因此 Redis 在性能上对比其他基于硬盘存储的数据库有非常明显的优势。 (2)Redis 支持数据的持久化,可以将内存中的数据异步写入到磁盘中,重启的时候可以再次加载进行使用。 (3)Redis 不仅仅支持简单的 key-value 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储。 (4)Redis 支持数据的备份,即 master-slave 模式的数据备份。

Redis 的特点:

(1)速度快

1)纯内存操作 2)单线程操作,避免了频繁的上下文切换 3) 采用了非阻塞 I/O 多路复用机制

(2)原子性

Redis 的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过 MULTI 和 EXEC 指令包起来。

(3)键值对的数据结构服务器

5种常用数据结构:String、hash、 list、 set、 zSet

(4)简单稳定

单线程,协议简单

(5)持久化

将内存数据写入磁盘

(6)主从复制

实现多个相同数据的 redis 副本

(7)高可用和分布式集群

哨兵机制实现高可用,保证 redis 节点故障发现和自动转移

(8)客户端语言多

java、php、python、c、c++、node.js等

使用 Redis 的缺点

(1)缓存和数据库双写一致性问题 (2)缓存雪崩问题 (3)缓存击穿问题 (4)缓存的并发竞争问题

Redis 应用场景

1、缓存数据库

合理使用缓存加快数据访问速度,降低关系型数据库压力

2、排行榜

按照热度排名,按照发布时间排行,主要用到列表和有序集合

3、计数器应用

视频网站播放数,网站浏览数

4、社交网络

赞、踩、粉丝、下拉刷新

5、消息队列

发布和订阅

6、其他场景。。