中间件之Redis
原文:https://blog.csdn.net/guchuanyun111/article/details/52064870
https://www.cnblogs.com/Survivalist/p/8119891.html
redis用来存储热点数据,Redis中没有的数据才会去数据库中访问
(1)什么是redis?
Redis是基于内存,也可以基于磁盘持久化nosql数据库,使用c语言开发。 数据存储结构:key-value redis 是一个基于内存的高性能key-value数据库.
(2)Reids的特点
Redis本质上是一个Key-Value类型的内存数据库, 整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush(冲)到硬盘上进行保存。 因为是纯内存操作,Redis的性能非常出色, 每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。 Redis的出色之处不仅仅是性能, Redis最大的魅力是支持保存多种数据结构, 此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据, 因此Redis可以用来实现很多有用的功能 用他的List来做FIFO双向链表,实现一个轻量级的高性 能消息队列服务, 用他的Set可以做高性能的tag系统等等。 另外Redis也可以对存入的Key-Value设置expire时间,因此也可以被当作一个功能加强版的memcached来用。 Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写, 因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
(3)Redis支持的数据类型
Strings Lists Sets(求交集\并集) Sorted_Set Hashes
(4)为什么redis需要把所有数据放到内存中?
Redis为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。 所以redis具有快速和数据持久化的特征。 如果不将数据放在内存中,磁盘I/O速度为严重影响redis的性能。 在内存越来越便宜的今天,redis将会越来越受欢迎。 如果设置了最大使用的内存,则数据已有记录数达到内存限值后不能继续插入新值。
(5)使用redis有哪些好处?
(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,list,set,sorted set,hash (3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行 (4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除
人各有命,上天注定,有人天生为王,有人落草为寇。脚下的路,如果不是你自己的选择,那么旅程的终点在哪,也没人知道。你会走到哪,会遇到谁,都不一定。