Redis初识

什么是Redis?

首先,对于这个问题需要补充一点,数据库从大的方向分为两大类(关系型和非关系型)这两种数据库对于前者并不陌生,后者是第一次接触
关系型:MySQL、SQL server、Oracle等。
非关系型:Redis、MongoDB
当然,对于这些如果细分的话还有很多,

Redis和MySQL对比

现在知道了Redis是一个数据库,那么为什么会出现它,和以往接触的MySQL比较一下:

  1. 数据库类型:MySQL(mysql是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度较慢。)
    Redis(redis是NOSQL,即非关系型数据库,也是缓存数据库,即将数据存储在缓存中,缓存的读取速度快,能够大大的提高运行效率,但是保存时间有限)
  2. 运行机制:MySQL作为持久化存储的关系型数据库,相对薄弱的是在每次访问数据库时都存在IO操作,而IO操作是非常耗费资源的,如果出现频繁访问数据库,第一:将在反复连接数据库上花费大量时间,从而导致数据库效率低下,第二:反复的访问数据库会使数据库的负载过高
    Redis为了弥补传统的关系型数据库的缺点,他不在使用IO读写,而是直接利用缓存,将数据放入缓存中,这样提高访问数据的速率,并且在这种情况下,直接可以在缓存中获取数据,降低了数据库的负载,提高访问效率,但是需要选择性的把一些数据放入磁盘中,这个时候就会存在一些可能的风险,这个在后边解释
  3. 两个数据库都各有特点,在一般情况下都是结合使用,这样才能最大化数据库的作用。

Redis存储

一般情况下,数据库的访问会出现如下三种访问情况:读多写少,读少写多,读写一样。
对于这三种情况Redis擅长读多写少,这是因为Redis的很多数据暂存在缓存中,我们在查找时如果只是读操作,那么Redis不会更新数据库Redis的存储是以键值对的形式存放的,而且是用散列的方式进行存储,这在检索的时候提高了很高的速率,数据库在存储的时候有两种策略,也就是确定这个缓存是什么时候以什么样的方式来存储数据,

  1. RDB(Redis DataBase)
    这种方式是默认开启的,指在一段时间或者一定的操作(不包含读操作)之后将数据更新到数据库,首先将数据进行持久化到一个临时的文件中,然后在持久化结束后再替换上次持久化的文件,关于一些配置我们可以在redis.conf文件中找到,比如
    在这里插入图片描述
    在这三行代码中,表示了RDB持久化的规则,当进行一次操作后,经过900秒进行持久化,当有10次操作发生,经过300秒后进行持久化,后边当是如此,
  2. AOF(appendonly file)
    这种方式是默认关闭的,指的是在保存数据时并不是保存的数据,而是保存的所有指令,在下次启动时,将所有指令从前往后执行一遍,而这个持久化也有其规则,也就是说什么时候进行数据从缓存到磁盘的转换,
    appendfsync always,指的是只要有操作,就会进行存储转换,
    appendfsync everysec,指的是每秒都进行转换,效率太低,浪费性能
    appendfsync no,这是将转换交给了Linux,一般是每30秒进行一次转换,
    这里所说的转换时持久化,
    对于此处的详细描述见:数据库持久化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值