更多精彩请关注“数据和云”公众号
概述
什么是Redis
Redis(RemoteDictionaryServer)是一个使用C语言编写的,开源的(BSD许可)高性能非关系型
(NoSQL)的键值对数据库。
Redis可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字
符串、列表、集合、散列表、有序集合。
与传统数据库不同的是Redis的数据是存在内存中的,所以读写速度非常快,因此redis被广泛应用于
缓存方向,每秒可以处理超过10万次读写操作,是已知性能最快的Key-ValueDB。另外,Redis也经
常用来做分布式锁。除此之外,Redis支持事务、持久化、LUA脚本、LRU驱动事件、多种集群方案。
Redis有哪些优缺点
优点
读写性能优异,Redis能读的速度是110000次/s,写的速度是81000次/s。
支持数据持久化,支持AOF和RDB两种持久化方式。
支持事务,Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执
行。
数据结构丰富,除了支持string类型的value外还支持hash、set、zset、list等数据结构。
支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。
缺点
数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主
要局限在较小数据量的高性能操作和运算上。
Redis不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要
等待机器重启或者手动切换前端的IP才能恢复。
主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,
降低了系统的可用性。
Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。为避免这一问
题,运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费。
为什么要用Redis/为什么要用缓存
主要从“高性能”和“高并发”这两点来看待这个问题。
高性能:
假如用户第一次访问数据库中的某些数据。这个过程会比较慢,因为是从硬盘上读取的。将该用户访问
的数据存在数缓存中,这样下一次再访问这些数据的时候就可以直接从缓存中获取了。操作缓存就是直
接操作内存,所以速度相当快。如果数据库中的对应数据改变的之后,同步改变缓存中相应的数据即
可!
评论