Redis

http://redis.io  ; http://www.redis.cn

下载:github上,https://github.com/antirez/redis

1.NoSQL(非关系型数据库)

    Memcached(擅长高速缓存),Redis(综合性能好),MongoDB(基于分布式文件存储的数据库,擅长存大文档,图片等),ElasticSearch(电商常用),HBase(Hadoop中的)。

    大数据时代数据特点: 海量,多样,实时。

    互联网需求的要求 :   高并发,高可扩,高性能。

    分类:KV键值对(Redis),文档型数据库(MongoDB),列存储数据库(HBase),图关系数据库。

2.CAP原理+BASE理论

    C:Consistency 强一致性

    A:Availability    高可用性

    P:Patition tolerance 分区容错性 也叫 分布式容忍性

CAP理论核心:一个分布式系统不可能同时很好的满足强一致性,高可用和分区容错性这三个需求。最多满足两个。   

    CA:单点集群,满足强一致,高可用系统。通常在可拓展性上不太强。

    CP:满足强一致性,分区容错性系统。通常性能不是特别高。

    AP:满足高可用,分区容错性系统。通常可能对一致性要求低一些。

依据CAP理论就是说在分布式存储系统中,最多只能实现两点。由于当前的网络硬件肯定会出现延迟、丢包等问题 ,

所以:分区容错性(P)是必须的。只能在强一致和高可用间进行平衡。

AP是大多数网站的选择,即高可用和分区容错性。另外一个指标只需要保证最终一致性(弱一致性)。

BASE理论:

   就是为了解决关系型数据库强一致性引起的可用性降低而提出的解决方案。

   BASE:

        基本可用(Basically),软状态(Soft state),最终一致(Eventually consistent)

  它的思想是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上的改观。

3.Redis(REmote DIctionary Server【远程字典服务器】)

   非关系型数据库之一,高性能的分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库。

    特点支持数据的持久化(支持异步将内存中的数据写到硬盘上,同时不影响继续服务),支持数据备份(即master-slave模式的数据备份),数据格式丰富(不仅支持kv类型数据,还提供list,set,zset,hash等数据结构的存储)。

  3.1、安装(Linux系统下安装)

    下载redis,解压到指定位置,进入redis目录,执行 'make' 命令。

     报gcc错:gcc是linux下的一个编译程序,是C程序的编译工具。 安装gcc即可。 gcc -v查看gcc版本

      报错后二次安装,会报错,请清除生成的文件,执行 'make distclean' 清除残留安装文件即可。(安装完成后make test命令不要执行,耗时超长,且要下载依赖)。

    安装命令顺序:make(安装) -> make install(检查安装完成)。

                             cd /user/local/bin 可以查看到redis安装的位置。类似于windows的program files文件夹。

 

3.2、redis.conf(redis最重要的配置文件)

   rdb:

       save 900 1       :900秒(15分钟)内改动一次,触发保存

       save 300 10     :  300秒(5分钟)内改动10次,触发保存

       save 60 10000 :  60秒内改动10000次,触发保存

       dbfilename dump.rdb : 数据持久化的文件名

  aof:

      appendonly no/yes  : 关闭/ 开启AOF

      appendfilename "appendonly.aof" : aof记录的文件名

      appendfsync everysec : 配置每秒记录一次(默认)

      auto-aof-rewrite-percentage 100 : 设置重写基准值,100%上次文件大小的100%,即相同大小

      auto-aof-rewrite-min-size 64mb :  设置重写基准值,aof文件大小最低64兆,才可以触发

3.3、redis命令

    redis-server /myredis/redis.conf 启动redis,

    redis-cli -p 6379 启动客户端,并连接redis服务,

    SHUTDOWN 关闭redis ,

    select 0 切换到0号库 ,

    dbsize 统计所有key的数量 ,

    keys * 查询所有key  ,

    flushdb 清空当前库 ,

    flushall 清空所有库 ,

    set k v 写数据 ,

    get k 获取数据

    bgsave redis异步保存,不会阻塞,仍然可以对外提供服务

 

3.4、redis数据类型

五大数据类型:字符串 (String) , 列表(List) ,集合(Set),哈希(Hash) ,有序集合Zset

string:redis的string可以包含任何数据。比如jpg图片或者序列化对象,是二进制安全的。一个redis字符串中value最大是512M。

 

3.5、redis持久化(RDB [Redis DataBase] 和 AOF [Append Only File])

RDB:内存快照,dump.rdb文件(异机备份还需要定时拷贝走这个文件即可,恢复时只需要用备份的替换现有的dump.rdb即可); SHUTDOWN会自动触发保存动作。缺陷:可能会丢失最后一次备份的数据。 redis-check-dump

AOF:以日志的形式来记录每个写操作,appendonly.aof文件。' redis-check-aof --fix appendonly.aof '自动修复文件内不合法的语法。

 

3.6、主从复制(master-slaver)

复制原理:

配置从库的配置文件 (配从不配主) ,不需要配置主库。

配置方式:slaveof 主库ip地址 端口

 

注意要点:(info replication 查看主从关系,连接信息等)

1、配置主从时,一定要写进配置文件(redis.conf)。命令行里面写的的slaveof在从库重启时会失效,从库又会变成master。

2、从库一旦配置好,会把主库的东西完全备份,不管主库数据是在slaveof前产生,还是在slaveof后产生,统通通都会备份到从库。

3、从库是没法进行写操作的(一旦配置完成,从库就写不进去数据了),只有主库可以。

4、主库挂死,从库仍然是从库(slave)不会上升到主库地位,从库连接状态变为down(master_link_status:down),处于原地待命状态。一旦主库恢复,立马就连接上了,一切照旧。

5、从库挂死,重启后从库会主动跟上主库,备份所有数据,一切照旧。

6、slaveof no one 手动使当前数据库停止与其他数据库的同步,强制转成主库

 

主从复制架构模式(链式和树):

 

 

 

哨兵模式(监控):

配置在sentinel.conf文件中,配置主库的sentinel.conf文件。

配置语法(配置主库的sentinel.conf文件):sentinel monitor +被监控主机名字(主库所在的主机) +127.0.0.1 +6379 1  (最后一个1表示主库挂死,从库(slave)采用投票模式确认新的主库)。系统自动检测到原来的主库重新恢复后,就变成了新的主库的从库

一组sentinel能同时监控多个Master

 

3.6、redis杂项

redis官网说明,写性能每秒钟8万,读每秒钟10万。

redis默认16个库

 

 

 

 

 

 

 

 

 

 

 

 

 

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值