Redis是Remote Dictionary Server (远程数据服务)的缩写,由意大利人antirez(Salvatore Sanfilippo)开发的一款内存高速缓存数据库。
Redis还是一个开源的、基于Key-Value方式的存储数据系统。
它支持丰富的数据类型(结构),比如:String(字符串)、Hash(哈希)、List(列表)、Sets(集合)和Sorted Sets(有序集合)等类型。
可持久化(随时把数据备份到硬盘中),保证数据安全。
Redis也通常被称为数据结构服务器。
中文官网:http://www.redis.cn
数据缓存:
在Web开发的时候,如果有一些数据在短时间内不会发生变化,而它们还要被频繁的访问,为了提高用户的请求速度和降低网站的负载,就把这些数据放到一个读取速度更快的介质上(或者是通过较少的计算量就可以获得该数据),该行为就称作对该数据的缓存。
该介质可以是文件、数据库、内存。
内存介质经常用于数据缓存。
Redis缓存案例:
同一个select查询SQL语句,每天需要被执行查询100万次,并且每次查询获得的数据还是一样的。为了减轻数据库的负载,就把查询好的数据给缓存起来(存储在内存中),第一个用户执行Select查询时从数据库中获得数据并存储到内存中,第二个到第100万个用户查询就直接从内存中获得数据。
使用缓存减轻数据库的负载。数据库是整个网站资源的“瓶颈”。
缓存的两种形式:
(1)网页缓存经常用在CMS(Content Manage System)内容管理系统中(Smarty缓存)
不发生变化的新闻信息页面适合做“页面缓存”,每个用户就从一个静态页面访问该新闻即可。
(2)数据缓存经常会用在页面的具体数据中使用
京东网站的一个页面从业务上看,数据有分类(推广商品、商品精选、普通商品),这些商品从数据读取出来,为了降低数据库负载,可以给它们设置三个数据缓存,这样独立更新、独立读取。