Redis迭代演化
redis在线入门 : http://try.redis.io/
redis 中文资料站: http://www.redis.cn/
https://www.runoob.com/redis/redis-tutorial.html
# Redis 基本介绍
# NoSQL
常用的关系型数据库: Oracle,MySQL,PostgresSQL 常用的非关系数据库:
- Redis,MongoDB,ElasticSearch, Hbase
非关系性数据库的特点:
键值(Key-Value)存储数据库 这一类数据库主要会使用到一个哈希表 (opens new window),这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果数据库管理员 (opens new window)(DBA (opens new window))只对部分值进行查询或更新的时候,Key/value就显得效率低下了。
文档型数据库 文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值,在处理网页等复杂数据时,文档型数据库比传统键值数据库的查询效率更高。如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。
redis下载:这是官方推荐的win下载方式
# Redis的迭代演化过程如下
- 诞生:Redis于2009年诞生,为后续发展奠定基础。
- 版本核心特性发展
- Redis1.0:初始版本,具备基础功能。
- Redis2.6:增加了如pubsub、lua等功能,丰富了Redis的应用场景。
- Redis2.8:推出Redis Sentinel V1 ,增强了Redis的高可用性。
- Redis3.0:引入Redis Cluster,实现了分布式集群功能 ,提升了系统的扩展性。
- Redis4.0:增加了lazy-free、modules、psync2.0等特性,优化了性能和功能。
- Redis5.0:新增GEO、Stream等数据类型,进一步拓展了Redis的应用领域。
- Redis6.0:引入Threaded I/O、ACLs等特性,在性能和安全性方面得到提升。
- Redis7.0:在自身底层性能和资源利用率上进行优化和提高,如多AOF文件支持、config命令增强、限制客户端内存使用、listpack紧凑列表调整、访问安全性增强、Redis Functions、RDB保存时间调整、命令新增和变动等。
- 版本稳定性标识:版本号第二位数字如果是奇数为非稳定版,偶数为稳定版。
# Redis 有哪些特点?
IO是毫秒级别、内存是纳秒级别。不是一个数量级的速度比较
特点:
- 满足数据高并发读写的性能要求,因为直接是内存中进行读写的,类似于CPU的分级缓存机制
- 单线程操作,每个操作都是原子操作,没有并发相关问题(redis6)
- 对海量数据的高效率存储和访问
- 对数据的可拓展性和高可用性
- 6379端口
# 为什么是这样设计的?
为什么是单线程:因为CPU内部时间片之间相互切换的成本太高了。当未来CPU发展之后,极大降低时间片的切换成本后,有变回单线程的可能性
Redis定位是缓存,满足数据高并发读写的性能要求;减轻对数据库存储与访问压力
- 当我们要用到缓存,先思考是否有需要使用
- 在实际使用中,一些请求直接打到缓存上,能够从缓存中获取到数据,就不用到数据库或者磁盘中重新获取,减轻了数据库存储与访问压力
- 作为缓存,例如,相同的筛选条件,我们可以存储好图片的Id,下次相同的筛选条件进来之后,返回一样的图片id,而不是重新到MySQL数据库中找
完善页面 (opens new window)