Redis学习笔记(1)----Redis介绍和简单理解

242 阅读2分钟

参考网址:

https://mp.weixin.qq.com/s?__biz=MzI4Njg5MDA5NA==&mid=2247484359&idx=1&sn=0994c6246990b7ad42a2d3f294042316&chksm=ebd742c6dca0cbd0a826ace13f4d4eeff282052f4a97b31654ef1b3b32f991374f5c67a45ae9&token=680063238&lang=zh_CN#rd
https://zhuanlan.zhihu.com/p/42272979

1. Redis介绍

1.1 Redis概念

Redis是一个基于内存的数据结构存储,可以用作数据库缓存消息中间件

1.2 Redis特点

(1)key-value数据结构;(2)数据加载在内存中;(3)单线程;(4)性能出色,每秒可以处理超10万次读写操作;(5)可以持久化

1.3 Redis优点(也可以理解为和memcached比较的优势)

(1)速度快;
(2)支持丰富的数据类型;
(3)支持持久化;
(4)丰富的特性,比如key可以设置过期时间。

1.4 Redis数据结构

5种基本数据结构:String、Hash、List、Set、SortedSet。 特殊数据结构:位图,布隆过滤器,GEO(地理位置信息),HyperLogLog(基数统计,比如UV统计)

2. 为什么要使用Redis

2.1 为什么要使用缓存

增加了缓存的请求处理过程: (1)提高性能,缓存查询速度要远高于数据库查询速度;
(2)提高并发能力,缓存命中时无需请求数据库,这使得缓存承担了一部分请求;

2.2 为什么使用Redis(相比较Java内存中的Map而言)

Redis是一种基于内存的数据结构,常用作缓存。同样内存和key-value的数据结构,为什么不使用Java Map作缓存,而使用Redis呢?
(1)Java Map是本地缓存,多台分布式机器间不具备一致性;而Redis实现的是分布式缓存,多台机器共享一份缓存,具有一致性
(2)Redis是专业做缓存的,可以用几十G来作缓存,支持持久化(数据可恢复)、缓存过期时间等特性;JVM缓存太大时容易崩溃,且不支持恢复。

3. Redis为什么快(Redis为什么采用单线程)

(1)Redis是基于内存的,内存读写已经非常快;
(2)单线程可以避免频繁上下文切换的开销,和避免因竞争锁导致的性能问题(多线程需要加锁解锁造成额外的开销);
(3)使用多I/O复用模型