学习笔记之:Redis数据库基础篇(一)

什么是Redis?

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value内存高速缓存的数据库,并提供多种语言的API。

Redis的特点

Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库系统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。
因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过10万次读写操作,是已知性能最快的Key-Value数据库。
Redis最大的魅力是支持保存多种数据结构,单个Value的最大限制是1GB,不像memcached只能保存1MB的数据。
redis相比memcached的优势:速度更快,可以持久化数据,且支持更为丰富的数据类型。

Redis缺点

Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。

使用Redis的好处

1.速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是0
2.支持丰富的数据类型:如string(字符串)、list(链表)、set(集合)、sorted set(有序集合)、hash(哈希类型)
3.支持事务,操作都是原子性,所谓原子性就是对数据的更改要么全部执行,要么全部不执行
4.丰富的特性:可用于缓存,消息,按Key设置过期时间,过期后将会自动删除。

Redis常见性能问题和解决方案

1.Master写内存快照,save命令调度rdbSave函数时会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性暂停服务,所以Master最好不要写内存快照。
2.Master AOF持久化,如果不重写AOF文件,这个持久化方式对性能的影响是最小的,但是AOF文件过大会影响Master重启的恢复速度。所以建议Master最好不要做任何持久化工作。
3.Redis主从复制的性能问题,为了主从复制的速度和连接的稳定性,Slave和Master最好在同一个局域网内。

Redis提供6种数据淘汰策略

1.Volatile-lru从已设置过期时间的数据集中挑选最近最少使用的数据淘汰
2.Volatile-ttl从已设置过期时间的数据集中挑选将要过期的数据淘汰
3.Volatile-random从已设置过期时间的数据集中任意选择数据淘汰
4.Volatile-lru从数据集中挑选最近最少使用的数据淘汰
5.Volatile-random从数据集中任意选择数据淘汰
6.no-enviction禁止驱逐数据
发布了38 篇原创文章 · 获赞 10 · 访问量 7209

猜你喜欢

转载自blog.csdn.net/chenxuezhong0413/article/details/83504467