Redis 基础知识(一)

       经常会听到人说redis,或者基于redis实现秒杀,对于没有大型项目经验或者没有使用redis的人来说,redis为什么可以这样流行,它的机制是什么样子的,它又可以适用哪些领域,在没学习前,一直都是一头雾水。

   1 背景:随着业务规模,用户人数增长,在大型项目中,对数据库的访问也是与日俱增,给数据库带来了很大的压力。在了解redis之前,要先了解下常规的程序访问数据库的过程。

     如果两个进程想要通过网络进行连接并且进行通行,最简单的最通用的就是socket编程。关于socket编程,后续会单独写一篇。这里简单来说,就是需要建立TCP连接,由应用程序和数据库共同商量使用应用层协议。来进行数据的操作。这个应用层协议是很复杂的,比如三次握手,四次挥手。这个过程是相当复杂的,不同的数据库,遵循的协议也不同。

       回到正题上来,这种传统的数据查询方式已经无法面对当前的业务需求,因此需要一种更为高效的查询模式来提高效率。大家都知道,在内存中操作数据中比访问数据库提高了好几个量级。既可以缓解数据库服务器的压力,也可以提高数据的访问速度。
   
   2 概述:redis是一个开源的,先进的key_value持久化产品。通常被称为数据结构服务器。
      值类型有 字符串(String)、哈希(Map)、列表(List)、集合(Sets) 和有序集合(Sorted sets)。
       从这些类型可以看出来,它可以完成 字符串追加、增加Hash里面的值、添加元素到列表、计算集合的交集、并集、差集,或者是有序集合中排名等。因为Redis是一个内存型数据库。而且还可以帮数据持久化到磁盘中。redis是使用ANSIC写的。
 
 (1)String类型 
      最常见的类型,可以包含任何数据,比如jpg或者序列化的对象。最大上限是1GB字节。
  (2)Hash类型
      Hash是一个String类型的filed和value映射表。最适合存储对象。相当于将每个对象的每个字段存成单个string类型。将对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。
  (3)List类型
       链表结构。每个子元素都是string类型的双向链表。可以获取一个范围内所有值。操作中key就是链表的名字。
  (4)Set类型
     一个无序集合,会通过hash table实现,会随着添加或者删除自动调整大小。取并集、交集、差集。
  (5)Sorted Set类型
       在set的基础上增加了一个顺序。顺序可以指定,每次指定后,会自动按照新的值调整顺序。可以理解为一列存value,一列存value
   
  3 主从复制
      redis也支持主从复制。可以将数据同步到多台从库上,可以优化读取性能。这里先简单了解下,和Mysql一样支持主从复制。


  4 Redis持久化
        一般redis会将数据存储在内存中或者虚拟内存中,但是他也支持数据持久化功能,比如将内存中得数据持久化到磁盘。如果意外断电,数据也不会丢失。 
  (1)RDB快照持久化

         默认是shnapshotting方式持久化,是将内存中的数据以快照的方式写入到二进制文件中,默认文件名是dump.rdb。是使用一个主线程来处理所有客户端的请求,会阻塞所有的客户端请求,另外每次都是完整写入,数据量比较大时,写入操作也会多,可能会影响性能。而且快照机制是一定间隔执行一次,如果意外当机,只会保存最后一次快照机制的数据。
  (2)AOF方式持久化
      AFO方式持久化,是将redis执行过的所有写指令记录下来。下次启动时,将写指令从头到尾执行一边,就可以实现数据恢复
  (3)混合模式
      4.0后开始支持混合模式,开始的数据以RDB的格式进行存储,因此只会占用少量空间。之后的命令会以AOF的方式进行数据追加,这样可以减少数据丢失的风险,提高数据恢复的速度。

心有所向,日复一日,必有精进。     

                                                                                                                                      玉衡星-刻晴

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值