redis是什么
对于redis是什么的问题,比较好回答,它就是一个非关系型数据库,一个NoSql数据库。但是架构着对于redis的定位不同,决定了它在系统中会担任不同的角色。因为它的存储数据模型是Key-Value的模式,所以有的系统就作为一个存储的系统来使用。另外redis的数据存在内存中,有的项目就将redis作为一个高速缓存来使用。因为放在内存中的数据的读取肯定是要比硬盘上(其他关系型数据库都是写在磁盘上的)读写速度快。
redis的适用场合
1.redis服务器直接作为数据库使用,应用程序直接访问redis数据库。如图所示:
应用服务器直接向redis服务器中进行写入和读取操作。这部分数据往往是不是特别的重要,而且是需要读写比较快的数据。因为redis的数据在内存中,服务器突然宕机的话,数据就可能会丢失。
2.Redis+Mysql的使用,将redis作为mysql的一个缓存来使用,进而保证我们的数据访问速度。应用程序访问redis,只有redis访问失败的时候,才会访问Mysql数据库。如图:
在我们的redis中,如果可以直接命中用户需要查询的数据,那么就直接将redis中的数据放回给客户,如果没有的话,那么,就去访问mysql中访问该数据,将查到的数据返回给客户,并将访问得到的数据存储到redis中。用户在下一次访问redis的时候就可以直接从redis中获取数据了。
除此之外,redis还可以做很多事情,但是作者水平有限,这里就不一一列举了,重点说下redis做缓存时的应用。
redis原理
redis的原理,本来也不怎么懂,后来看到一个大神的博客,直接把链接粘过来了。