• 笔记redis


    redis特点:

    1.这些数据类型都支持 push/pop. add/remove 及取交集并集和差集及更丰富的操作

    2.Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件中进行持久化

    3.单线路+IO多路复用

    4.redis操作是原子性操作

    redis   单线程模型:

    Redis 内部使用文件事件处理器 file event handler ,这个文件事件处理器是单线程的,所以 Redis 才叫做单线程的模型。它采用 IO 多路复用机制同时监听多个 socket,将产生事件的 socket 压入内存队列中,事件分派器根据 socket 上的事件类型来选择对应的事件处理器进行处理。

    文件事件处理器的结构包含4个部分:①多个socket;②IO多路复用程序;③文件事件分派器;④事件处理器(命令请求处理器,命令回复处理器,连接应答处理器等等)。

    当被监听的套接字准备好执行连接应答(accept)、读取(read)、写入(write)、关闭(close)等操作时,与操作相对应的文件事件就会产生,这时文件事件处理器就会调用套接字之前关联好的事件处理器来处理这些事件。

    文件事件处理器是单线程模式运行的,但是通过IO多路复用机制监听多个socket,并根据socket目前执行的任务来为套接字关联不同的事件处理器。可以实现高性能的网络通信模型。又可以跟内部其他单线程的模块进行对接,保证了Redis内部的线程模型的简单性。

    redis默认端口:6379

    默认16个数据库。默认使用0号库

    redis在linux下安装步骤

    1. 检测是否安装C语言环境  如果没有安  gcc -version
    2. 如果没有安装  通过  yum install gcc
    3. 解压redis安装包  同时在redis文件目录 执行make命令
    4. 执行make命令后  执行make install

    redis.conf配置:

    1. protected-mode yes 只支持本机访问 no 支持远程访问
    2. tcp-backlog 511 设置tcp的backlog , backlog 其实是一个连接队列 , backlog队列总和=未完成三E次握手队列+已经完成三次握手队列。。在高并发环境下你需要一个高backlog值来避免慢客户端连接问题。。
    3. timeout 0 0代表永不超时 超时时间单位秒
    4. tep-keepalive 300 每隔300s判断是否连接 不连接释放连接
    5. daemonize 设置后台启动
    6. logleval debug verbose notice【生产环境】
    7. logfiile 日志输出路径
    8. database 16 默认16个数据库
    9. requirepass : 设置redis登陆密码
    10. maxclients 10000 客户端最大连接数 大于此连接数拒绝访问
    11. maxmemory 内存最大值

    redis:修改配置文件内容两种方式

    1. 第一种直接修改redis安装目录下的  redsi.conf   目录下的内容
    2. 进入  redis  通过   config  get   配置文件参数名     获取
    3. 进入redis    通过  config   set    配置文件参数名     value   来设置值

    redis启动方式:

    1. 前台启动   执行redis-server   但是有缺点  会让redis再关闭窗口后直接停止
    2. 后台启动  修改redis.conf  文件  找到 daemonize 将no修改成yes  实现后台启动 改成后台启动'  进入  usr/local/  执行  redis-server /conf所在目录+redis.conf
    3. redis  进入edis命令  redis-cli   
    4. redis-cli -p 端口 多个通过加端口的方式进入  或者添加ip  redis-cli -h  ip  -p  端口方式进入
    5. kill -9  进程号  关闭redis 或者在redis中直接shutdown

    redis主从配置:[一主多从:单台虚拟机,从机下也可以继续添加他的从机]

    第一种方式:【单台机器实现一主多从配置】

    1. 复制redis的默认配置文件到自己新创建目录
    2. 创建多个配置文件 命名方式随意  内部定制如下

    include /myredis/redis.conf

    pidfile /var/run/redis 6379.pid

    port 6379

    dbfilename dump6379.rdb

    1. 将redis默认的.conf文件与自己新加的conf文件放到一起 
    2. 添加主从配置:在想要做从机上执行   slaveof   ip   端口   当前服务器默认变成从机
    3. 通过  info  replication  可以查看  主机  从机状态

    第二种方式:[一主多从:多台虚拟机]

    1. 复制redsi配置文件 自己定义 一个新文件或者用原有文件不复制
    2. 在主机配置bind配置中默认填写自己的主机ip地址 默认不添加 从机无法被访问
    3. 从机中执行slaveof 命令   slaveof  ip  port   如果添加账号密码  需要进行验证 如果不添加账号密码  可以直接实现主从  默认需要关闭防火墙策略 或者打开端口 
    4. 依次启动redis-server   自己命名的conf文件
    5. 如果需要将从机变成主机 那么可以再从机上执行slaveof  no  one  这种情况下主机默认变成从机  从机默认变成主机  属于手动修改。也可以通过哨兵模式

    主从复制原理:

    1. 当从机连接上主服务器之后,从服务器向主服务发送进行数据同步消息
    2. 主服务器接到从服务器发送过来同步消息,把主服务器数据进行持久化存入到rdb文件,把rdb文件发送从服务器,从服务器拿到rdb进行读取
    3. 每次主服务器进行写操作之后,和从服务器进行数据同步

    注意:redis可以自己搭建多个主从   也可以创建 多台虚拟机  创建多个redis实现主从

    • Slave 启动成功连接到master后会发送一个sync命令。
    • Master 接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后, master将传送整个数据文件到slave,以完成一次全量全同步。
    • 全量复制 :而slave服务在接收到数据库文件数据后,将其存盘
  • 相关阅读:
    RTPEngine 通过 HTTP 获取指标的方式
    2.10 负载均衡原理- url hash 与 least_conn
    很多应用都是nginx+apache+tomcat
    一文看懂推荐系统:排序03:预估分数融合
    国家开放大学 试题练习
    代码随想录50——动态规划: 123买卖股票的最佳时机III、188买卖股票的最佳时机IV
    java 汽车修理厂修配厂-接单-处理收款 日常经营管理系统 汽车修理信息管理
    HTML基础用法
    nvm使用的注意事项和常用命令。
    JS数据结构与算法-队列结构
  • 原文地址:https://blog.csdn.net/fyfguuug/article/details/128055413