【Redis缓存机制】1.Redis介绍和使用场景
(1)持久化数据库的缺点
平常我们使用的关系型数据库有Mysql、Oracle以及SqlServer等,在开发的过程中,
数据通常都是通过Web提供的数据库驱动来链接数据库进行增删改查。
那么,我们日常使用的数据库的数据都储存在哪里呢?我们以Mysql为例。
打开我们Mysql所在的文件夹目录下的data文件夹,如下所示:
我们可以发现,里面都是我们创建的数据库,打开其中一个,可以看到我们创建的表,
他们以文件(格式frm和ibd)的形式存在:
也就是说,我们日常使用的关系型数据中的数据,全部存储在我们部署数据库的机器
的硬盘中。
一般我们的网站开发完成,上线之后,服务器的读写效率是网站运行速度的重要条件,
当然还有服务器的带宽等,但是这些东西都可以通过硬件的更新升级来解决。
其实与网站运行效率息息相关的东西,就是我们的------数据库。
数据库处理数据的速度,与网站速度息息相关,而数据查询、数据处理等等,
都和数据库处理速度有关。提高数据库的处理数据的能力,其中一个方案就是
sql语句的优化技术,sql语句写的处理效率比较高,数据库处理能力就会上去,
而网站的数据处理能力也会快些。
但是,当网站的处理和访问量非常大的时候,我们的数据库的压力就变大了,数据库的
连接池,数据库同时处理数据的能力就会受到很大的挑战,一旦数据库承受了其最大承受
能力,网站的数据处理效率就会大打折扣。此时就要使用高并发处理、负载均衡和分布式数据库,
而这些技术既花费人力,又花费资金。
如果我们的网站不是非常大的网站,而有想要提高网站的效率,降低数据库的读写次数,我们就
需要引入缓存技术。
(2)缓存
缓存就是在内存中存储的数据备份,当数据没有发生本质改变的时候,我们就不让数据的查询去
数据库进行操作,而去内存中取数据,这样就大大降低了数据库的读写次数,而且从内存中读数据
的速度比去数据库查询要快一些,这样同时又提高了效率。
使用缓存减轻数据库的负载:
在开发网站的时候如果有一些数据在短时间之内不会发生变化,而它们还要被频繁访问,为了
提高用户的请求速度和降低网站的负载,就把这些数据放到一个读取速度更快的介质上(或者
是通过较少的计算量就可以获得该数据),该行为就称作对该数据的缓存。
该介质可以是文件/数据库/内存。内存经常用于数据库缓存。
缓存的两种形式:
页面缓存经常用在CMS(content manage system)内存管理系统里面。
数据缓存经常会用在页面的具体数据里面。
缓存分为两种:
页面缓存(smarty静态化技术)
数据缓存
(3)Redis介绍
我们要学习的一个缓存技术就是----Redis:
Redis是Remote Dictionary Server(远程数据服务)的缩写,由意大利人antirez(Salvatore Sanfilippo)开发的一款内存高速缓存数据库,该软件使用C语言编写,它的数据模型为key-value。
它支持丰富的数据结构(类型),比如String/List/Hash/Set/Sorted Set。
可持久化(一边运行,一边把数据往硬盘中备份一份,防止断电等情况导致数据丢失,等断电情况恢复之后,Redis再把硬盘中的数据恢复到内存中),保证了数据的安全。
(4)redis和memcache比较
1.Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
2.Redis支持master-slave(主-从)模式应用
3.Redis支持数据持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
4.Redis单个value的最大限制是1GB,memcached只能保存1MB的数据。
转载请注明出处:http://blog.csdn.net/acmman/article/details/53167917
【Redis缓存机制】1.Redis介绍和使用场景的更多相关文章
- Spring(五)Spring缓存机制与Redis的结合
一.Redis和数据库的结合 使用Redis可以优化性能,但是存在Redis的数据和数据库同步的问题. 例如,T1时刻以将 key1 保存数据到 Redis,T2时刻刷新进入数据库,但是T3时刻发生了 ...
- 【Azure Redis 缓存】Azure Redis 功能性讨论二
继承上一次讨论了Azure Redis的可用性,可靠性,稳定性,安全性,监控方面的九大功能点.详情可回顾文章:[Azure Redis 缓存]Azure Redis功能性讨论 这次我们继续讨论Azur ...
- 【Azure Redis 缓存】Azure Redis功能性讨论
关于使用Azure Redis服务在以下九大方面的功能性的解说: 高可用 备份可靠性 配置自动化 部署多样性 快速回档功能 数据扩容 SLA稳定性 数据安全性 监控系统 一:高可用 Azure Cac ...
- JAVA记录-redis缓存机制介绍(一)
1.redis介绍 Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Re ...
- JAVA记录-redis缓存机制介绍(四)
Redis 数据备份与恢复 Redis SAVE 命令用于创建当前数据库的备份. 语法 redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 实例 re ...
- JAVA记录-redis缓存机制介绍(二)
Redis 集合(Set) Redis的Set是string类型的无序集合.集合成员是唯一的,这就意味着集合中不能出现重复的数据. Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度 ...
- 缓存机制总结(JVM内置缓存机制,MyBatis和Hibernate缓存机制,Redis缓存)
一.JVM内置缓存(值存放在JVM缓存中) 我们可以先了解一下Cookie,Session,和Cache Cookie:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cooki ...
- Redis缓存机制
Redis介绍 Redis是一款内存高速缓存数据库: 数据模型为:key - value,非关系型数据库使用的存储数据的格式: 可持久化:将内存数据在写入之后按照一定格式存储在磁盘文件中,宕机.断电后 ...
- redis缓存机制【转载】
转载自:http://blog.csdn.net/acmman/article/details/53434134 redis的主从模式(1)介绍redis存储数据是在内存中运行的,运行速度比关系型数据 ...
随机推荐
- 类的反射实例(servlet的抽取)
类的反射实例 具体以后我们写的时候不用写BaseServlet,因为各种框架都已经给我们写好了 所以,user对应的servlet的界面长这样:
- SQLServer日期格式化及创建相关日期
DECLARE @FirstDay_M DATETIME --本月初日期 ,); DECLARE @LastDay_M DATETIME --本月末日期 SET @LastDay_M = DATEAD ...
- 《DSP using MATLAB》Problem 8.35
代码: %% ------------------------------------------------------------------------ %% Output Info about ...
- Java程序员注意:Tomcat Get请求的巨坑!
Tomcat8.5,当Get请求中包含了未经编码的中文字符时,会报以下错误,请求未到应用程序在Tomcat层就被拦截了. Tomcat报错: java.lang.IllegalArgumentExce ...
- 2_1.springboot2.x配置之配置文件解析
1.配置文件 1.Spring Boot使用一个全局的配置文件:•application.properties.application.yml 2.配置文件放在src/main/resources目录 ...
- [洛谷P3672]小清新签到题
题目描述 题目还是简单一点好. 给定自然数n.k.x,你要求出第k小的长度为n的逆序对对数为x的1~n的排列a1,a2...an,然后用仙人图上在线分支定界启发式带花树上下界最小费用流解决问题,保证存 ...
- 【颓废篇】人生苦短, 我用python(二)
当时产生学习python的欲望便是在看dalao们写脚本的时候… 虽然dalao们好像用的是js来着.. 不过现在好像很多爬虫也可以用python写啊… 所以学python没什么不妥. 而且csdn整 ...
- webpack英文文档
https://github.com/webpack/docs/wiki/contents
- vue项目中,单页图片过多,使用懒加载
最近做项目,一页图片很多,加载的时候效果很差. 通过学习借鉴其他大神的方法,使用了插件vue-lazyload,使用这个插件,界面更美观了,加载的效果好起来. 安装 npm i vue-lazyloa ...
- 虚拟机上CentOS7 配置NAT模式
1. 虚拟机网络适配器选择NAT模式 2. 使用vi编辑/etc/sysconfig/network-scripts/ifcfg-ens32 vi /etc/sysconfig/network-scr ...