赞
踩
普通解法:
首先,redis是一种内存型、非关系型数据库;redis的数据会存储到硬盘上;它保存数据一种采用的是rdb(快照的形式进行数据的保存,是redis默认开启的方案,它将内存中的数据都保存到磁盘上,放到rdb文件中,重新启动服务器是将rdb的内容重新取出来,再回复到内存中。还有一种是aof默认是不开启的,因为他会频繁的操作磁盘,每秒钟同步一次,所以默认是不开启的。开启之后数据的恢复就是用aof。
通用大牛级解法:
redis是一种内存型、非关系型数据库;
主要有以下几个特点:
1、速度快
Redis是用C语言实现的,所有数据存储在内存中。
2、持久化
Redis的所有数据存储在内存中,对数据的更新将异步地保存到磁盘上。
3、支持多种数据结构
Redis支持五种数据结构:String、List、Set、Hash、Zset
4、支持多种编程语言
Java、php、Python、Ruby、Lua、Node.js
5、功能丰富
除了支持五种数据结构之外,还支持事务、流水线、发布/订阅、消息队列等功能。
6、源码简单
约23000行C语言源代码。
7、主从复制
主服务器(master)执行添加、修改、删除,从服务器执行查询。
8、高可用及分布式
Redis-Sentinel(v2.8)支持高可用
Redis-Cluster(v3.0)支持分布式
持久化方式
redis的数据会存储到硬盘上,它保存数据一种采用的是rdb(快照的形式进行数据的保存,快照是采用一种机制保存,这种机制你可以自己在redis的配置文件中进行配置,隔多长时间保存多少数据,这种方法是比较快了,数据会被保存到硬盘上,当redis启动的时候,硬盘上的数据会在写到数据库中,这种方法是大大提高了数据的存储和读取的效率。但是性能上还是会有一定的影响,毕竟他还要去占用cpu去做保存快照的操作;redis保存数据的另一种方法就是采用aof集群的方式,它会使每个服务器内都有对方服务器上的数据,**这种方式避免了像rdb那种在特定时间内用快照保存数据的机制,减少内存的占用,从而提高性能。而且这种方法还有另一个好处就是,当一个服务器荡掉以后,数据不会因此丢失,**而是当你在操作数据的时候会从其他的服务器上读到你想要操作的数据。aof默认是不开启的,因为他会频繁的操作磁盘,每秒钟同步一次,所以默认是不开启的。开启之后数据的恢复就是用aof。
**RDB 和 AOF ,一般怎么应用呢?**一般来说,**如果想达到极高的数据安全性, 应该同时使用两种持久化功能。**如果你非常关心你的数据,但仍然可以承受数分钟以内的数据丢失, 那么你可以只使用 RDB 持久化。有很多用户都只使用 AOF 持久化, 但我们并不推荐这种方式: 因为定时生成 RDB 快照(snapshot)非常便于进行数据库备份, 并且 RDB 恢复数据集的速度也要比 AOF 恢复的速度要快.
Redis集群模式主要有2种:
主从集群
分布式集群(redis 3.0之后版本支持redis-cluster集群)
主从集群主要是为了高可用或是读写分离,分布式集群为了更好的存储数据,负载均衡。
我们主要说一下分布式集群,Redis集群中至少应该有六个节点。为了实现容错机制(所有的redis节点彼此互联(PING-PONG机制)每个节点都有一个FAIL,因为是通过ping-pong机制来进行互联,所以当一个节点没有返回pong的时候,标记为pfail,通过集群中超过半数的节点检测失效时才生效变为PFAIL,就代表本节点失效),要保证集群的高可用,需要每个节点有一个备份机。Redis 集群中内置了 16384 个哈希槽,集群所搭建的服务器平均分配了这16384个hash槽,所以每当我们添加一个key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,然后重定向到包含这个hash槽的节点,继续添加的时候,又会算相应的hash槽,概率基本上是每添加一个key跳转到不同的节点,数据均匀的分布在不同的节点上,这样实现了每个节点都有一定数量的数据,如果主节点挂了那从节点就顶上来,这样就实现了高可用。
什么是高可用?
高可用(High Availability),是当一台服务器停止服务后,对于业务及用户毫无影响。 停止服务的原因可能由于网卡、路由器、机房、CPU负载过高、内存溢出、自然灾害等不可预期的原因导致,在很多时候也称单点问题。
解决单点问题方式:
主备方式(keepalived)
这种通常是一台主机、一台或多台备机,在正常情况下主机对外提供服务,并把数据同步到备机,当主机宕机后,备机立刻开始服务。其中使用比较多的是keepalived,它使主机备机对外提供同一个虚拟IP,客户端通过IP进行数据操作,正常期间主机一直对外提供服务,宕机后VIP自动漂移到备机上。
优点是对客户端毫无影响,仍然通过虚拟VIP操作。
缺点也很明显,在绝大多数时间内备机是一直没使用,被浪费着的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。