1.什么是redis
1.1nosql的:
非结构化查询语言。
1.2key-value数据结构的
键值对形式存储数据,可以通过key获取value值
1.3运行在内存的
运行速度快,但易有断电造成数据丢失的风险,相对于硬盘容量小。
1.4支持持久化的
将数据对象持久化到磁盘,可以解决断电造成的数据丢失的风险。
1.5支持分布式结构的
可以搭建分布式集群,解决并发问题。
1.6具有缓存功能的
加快数据的读取,减少资源的消耗。
1.7一个数据库
是一个读写数据容器。
2.角色
2.1服务端
对数据进行读取和存储。
2.2客户端
通过连接Redis服务端,通过命令来进行数据的读写操作
3.redis为什么被设计成单例(单进程,单线程)模式??
分析:
单线程优点:
a无需考虑cpu在资源之间的切换消耗
b无需考虑线程安全,线程锁问题
单线程缺点:
相比于多线程并发能力不足
但是redis可以做到扬长避短:
1.redis是在内存运行的,读写数据速度快,并发支持很高。
2.reids的并发上限不取决于redis本身,而是取决于网络带宽,使得redis的吞吐量限制在网络传输层。
3.redis单线程并发能力也很高,这基于非阻塞io分路复用机制。
4.redis如何保证热点数据?
首先先设置淘汰数据上限
然后采用redis的淘汰策略
redis淘汰策略:
volatile(针对超时)淘汰:lru(按时间),lfu(按频率),random,ttl
allkeys(针对所有数据)淘汰:lru,lfu,random
具体使用哪种策略要取决于数据环境。