redis介绍
redis本质上是一个key-value类型的内存数据库,很像memcache,整个数据库都加载在内存中进行操作,定期通过异步操作把数据库flush到硬盘上进行保存。
一:优点:
- 性能极高。因为是纯内存操作,读的速度是110000次/s,写的速度是81000次/s ,是已知性能最快的Key-Value DB。
- 支持保存5种数据结构。string(字符串) ,list(链表),hash(哈希),set(集合),zset(有序集合)
- 单个value的最大限制是1GB。memcache只能保存1MB的数据
- 可对key-value设置expire时间。
- 支持数据备份,事务,持久化数据。
二:缺点:
- 数据库容量受物理内存的限制,不能用作海量数据的高性能读写
- 适合场景局限在较小数据量的高性能操作和运算上
三:主要用作缓存和高速读写
缓存
日常对数据库的访问,读操作的次数远超过写操作次数,比例大概在1:9到3:7。
使用sql语句对数据库进行读写时,数据库就会去磁盘取回对应的数据索引,是一个相对较慢的过程。
若把数据放在redis中,也就是直接放在内存中,让服务端直接读取内存中的数据,那么速度会明显快很多并极大的减少数据库压力。但是使用内存进行数据存储开销较大,一般使用redis存储常用的和主要的数据。
高速读写
成千上万的数据请求在某个时间刻到达服务器,若使用数据库处理就算不崩,也会很慢。
放在redis上进行读写,会满足高速响应的需求。
四:主要应用场景
- 缓存 --string,hash
- 排行榜 --zset
- 计数器 --string,zset
- 分布式锁,秒杀 --set
- 标签,点赞,收藏,好友关系等 --set
- 日/周/月活,留存 --string(bitmap)
- 关注/最新列表,消息队列 --list
- 发布/订阅 --publish,subscribe/unsubscribe