全国咨询/投诉热线:400-618-4000

Redis相关介绍

更新时间:2018年09月06日17时54分 来源:传智播客 浏览次数:

  1、为什么用redis

  (1) 提升数据的响应速度

  (2) 减轻关系型数据库的压力

  Redis的执行流程

  当用户要来操作数据时直接连接数据库进行查询然后展示,相同的数据也需要再进行数据库的查询,对于大数据量的并发访问,会给数据造成距大的压力。

  为了减轻数据库的压力,使用了这种非关系型数据库(nosql数据库)redis

  当用户第一次访问时,首先访问redis,redis中如果没有数据再去查询数据库,当查询完数据库后,先将数据存放到redis中,然后再返回给用户。

  当用户第二次访问的时候还是去访问redis,此时redis中有数据,这时就不需要再次去查询数据库了。

  第一次查询,此时redis中有了数据,如果对DB中的数据产生了更新

  第二次查询的时候以为redis中已经有了数据,那么就会直接返回,但是问题发生了,db与redis中的数据不同步

  此时需要清除redis中的数据

  当数据库发生数据改变的时候清空redis

  这就是缓存同步:解决nosql数据库与关系型数据库不同步的问题

  Redis有五种数据类型

  String key value 有一种特殊的写法可以实现数据的分类使用冒号分隔

  Clothes:裤子 100

  Clothes:风衣 100

  Hash key field value key后面跟了个map map中是field value 完成数据归类的操作 存值hset key field value 取值hget key field

  List 有序 数据可重复

  右压栈--以中心点的位置向右添加 rpush lrange key 0 -1取所有

  左压栈--以中心点的位置向左添加 lpush lrange key 0 -1取所有

  Set 无序不可重复

  存值 sadd key value

  取值 smembers key

  SortedSet有序不可重复(可以做排行榜信息)

  额外的一些对key操作的命令

  Expire 设置过期时间,以秒为单位

  Ttl 查看某一个key的状态 状态值为-1为持久化状态 -2为key不存在

  Persist将某一个key转换为持久化状态

  仅适用于linux

  Redis的前台启动 redis-server

  Redis的后台启动 修改redis.conf中的属性daemonize 改为yes输入redis-server redis.conf完成后台启动

  一个单机的redis默认会存在16个数据库 也可以在redis.conf中修改

  ./redis-cli --raw 客户端连接可以显示中文

  在进行连接的时候默认连接的是0号数据库,在同一个数据库中key是不可以重复的,重复的话就会发生值覆盖,在不同的数据库中key是可以重复的,使用select 1命令进行数据库的切换

  Redis的持久化策略是对redis内部数据整体的持久化(产生缓存文件,记录信息,缓存文件存放到磁盘中)

  1、RDB默认开启的持久化,快照的形式进行记录,dump.rdb。默认存在三种触发条件save 900 1在900秒内如果有1个key发生改变就会触发RDB进行数据存放 save 300 10 在300秒内10个可以发生改变会触发RDB,save 60 10000 60秒内至少有10000个可以发生改变会触发RDB

  2、AOF需要手动开启,在redis.ocnf文件中的appendonly属性做修改,当开启后会每秒进行磁盘的写操作,记录的不是单独的数据,会记录所有对redis 的添加、修改、删除的命令。Appendonly属性改为yes 会生成appendonly.aof文件。默认开启每秒记录 appendfsync everysec模式

  两种持久化策略是可以同时开启的,但是AOF的优先级高于RDB

  Aof的数据安全性高于RDB,但是运行速度低于RDB,建议不开启AOF

  Redis集群

  在redis3.0版本以后可以直接使用,redis集群中的服务器节点之间是相互联通的,当用户访问集群的节点时,无需关注连接的是哪一个节点,只需要连接集群中任意的节点就可以获取到整个集群的数据

  Redis集群数据的存放:0-16383的槽值,当设置值时,根据key计算该key的值,这个值肯定是在0-16383的范围内,根据计算得到的值确定该key的数据存放到哪一个节点中。Key的值可能是相同的。

  Redis集群默认有一个投票机制,当集群超过半数的节点认为某一节点已经挂了,那么不管该节点是否挂掉投票结束后就真的挂了,所以一般都是基数个服务器为了实现投票机制。

  主从备份:给集群中每一个节点额外搭建一个备份机,为了完成整个集群的高可用,主节点叫master,从节点叫slave。Master对外提供服务,slave实时的做两件事,第一就是同步主节点的数据,第二就是向主节点发送心跳包保证主节点的存活。当主节点无回应时slave变为主节点向外提供服务。

  基于(心跳检测机制)keepalived搭建完主从备份后,在用户进行连接时,会在用户和服务之间搭建一个虚拟IP,用户直接连接虚拟IP(VIP),VIP连接master实现用户的间接连接,当master发生问题时,VIP会转接到slave上



作者:传智播客JavaEE培训学院

首发:http://java.itcast.cn

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

uids

北京校区

    14天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    8天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    0天免费试学

    基础班入门课程限时免费

    申请试学名额

    12天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    10天免费试学

    基础班入门课程限时免费

    申请试学名额