zoukankan      html  css  js  c++  java
  • Redis基础介绍&安装部署

    Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。它可以用作数据库、缓存和消息中间件。与其他 key - value 缓存产品对比,Redis有以下三个特点:

      1、Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用

        2、Redis支持多样化的数据结构,除了常用的数据结构string,list,set,zset,hash外,还支持bitmaps,hyperloglogs,geospatial索引半径查询。

      3、性能极高 – 官方给出的Redis性能指标是10万级的qps,在实际生产环境中由于各种因素影响也能达到4万+qps 。

    Redis重点版本介绍

    Redis稳定版本号多为偶数版(例如2.6、2.8、3.0、3.2),这里重点介绍几个大版本的常接触的特性变化(详细内容可查看Redis版本记录文件)。

    Redis2.6

        1、键的过期时间支持毫秒。
        
        2、slave节点支持只读模式
        
        3、客户端最大输出缓冲软、硬限制。可参考参数配置项client-output-buffer-limit
        
        4、AOF文件支持可变参数去重写聚合数据类型。
        
        5、shutdown命令支持save和nosave模式
        
        6、info命令支持模块输出,如info memory返回内存信息
        
        7、新增info commandstats命令统计模块。 

    Redis2.8    

        1、新增部分复制功能,这里命名为psync1来区别4.0的部分复制psync2。在2.8之前,主从中断(如正常的网络抖动或者执行较大命令阻塞服务)只能通过全量复制来同步,这样会占用大量的网络、CPU、磁盘资源。极端情况下会主从间会出现复制失败——申请全量复制的循环。部分复制利用repl-backlog-size复制积压缓冲区来存储在从节点与主节点心跳失败期间的命令,在重连成功后根据复制积压缓冲区的位置来判断是否进行部分复制。    

    2
    、支持动态修改最大连接数maxclients 3、config rewrite可将通过config set动态修改的参数配置项写入配置文件中

    Redis3.0  &  Redis3.2

        1、Redis Cluster:Redis的官方分布式实现。
    
        2、LRU算法大幅提升。
    
        3、config set设置maxmemory时候可以选择单位
    
        4、config set动态修改命令可修改更多参数

    Redis4.0

        1、提供了模块系统,方便第三方开发者拓展Redis的功能,更多模块详见:http://redismodules.com。
        2、PSYNC2.0:优化了之前版本中,主从节点切换必然引起全量复制的问题。
        3、提供了新的缓存剔除算法:LFU(Last Frequently Used),并对已有算法进行了优化。
        4、新增异步惰性删除功能,有效解决删除bigkey可能造成的Redis阻塞。
        5、提供了RDB-AOF混合持久化格式,充分利用了AOF和RDB各自优势。
        6、提供memory命令,实现对内存更为全面的监控统计。
        7、Redis Cluster兼容NAT和Docker。
        8、新增内存碎片回收功能(Active defragmentation),可主动回收内存碎片。

    Redis5.0

        1、新的流数据类型(Stream data type) https://redis.io/topics/streams-intro
    
        2、引入动态的 HZ(Dynamic HZ) 以平衡空闲 CPU 使用率和响应性
    
        3、升级 Active defragmentation 至 v2 版本
    
        4、redis-cli 中的集群管理器从 Ruby (redis-trib.rb) 移植到了 C 语言代码。

     重点功能总结

    在新增的许多特性中,改善较强的功能包括

        12.8版本的部分复制psync1,该功能提供了部分复制功能,避免之前稍有异常便出现全量复制的问题。
    
        23.0版本的官方分布式解决方案Redis Cluster。
    
        34.0版本的异步惰性删除功能,解决了长期以来Redis大key引起的阻塞问题,为Redis性能优化指明了异步化方向。
    
        45.0版本的Stream数据类型,支持多播的可持久化的消息队列。

    Redis安装部署(以5.0.4版本为例)

    1、从官网上下载Redis压缩包、解压并编译,即可生成可执行文件

    
    
    tar -xzvf redis-5.0.4.tar.gz
    
    
    cd redis-5.0.4/
    
    
    make PREFIX=/app/redis-5.0.4 install  
    在编译安装后,在src下有几个以redis开头的可执行文件,称为redis shell,这些可执行文件可做很多事情。
    可执行文件
    作用
    redis-server 
    启动redis
    redis-cli
    redis命令行工具
    redis-benchmark
    基准测试工具
    redis-check-aof
    AOF持久化文件检测工具和修复工具
    redis-check-dump
    RDB持久化文件检测工具和修复工具
    redis-sentinel
    启动redis-sentinel

     

    2、启动Redis服务

    ./bin/redis-server redis.conf & 

    由于Redis主要是单线程服务,大部分时间只用到一个CPU,所以一般会在同一个机器上部署多个节点。

    3、服务启动后即可通过Redis客户端redis-cli执行命令,这里仅介绍比较常用的运维命令

    redis-cli -p 6379 info  all 
    可查看服务端包括Server、Clients、Memory、Persistence、Stats、Replication、CPU、Commandstats、Cluster、Keyspace共计10个大类别的的信息。
    redis-cli -p 6379 info replication

    # Replication
    role:master
    connected_slaves:0
    master_replid:a2c864076960f45041c067e2463aaf586d04b93b
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:0
    second_repl_offset:-1
    repl_backlog_active:0
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:0
    repl_backlog_histlen:0

      可查看主从复制类别的统计信息。

    redis-cli -p 6379 config get "a*"            获取a开头所有的配置项
    redis-cli -p 6379 config set appendonly yes  开启aof持久化选项,将数据持久化到aof文件中
    redis-cli -p 6379 config rewrite             将动态修改的参数写入配置文件中
    redis-cli -p 6379 client list                查看当前所有的客户端连接信息
    redis-cli -p 6379 bgsave                     在后台备份数据,生成rdb文件
    redis-cli -p 6379 shutdown                   关闭Redis服务

    其他命令可参考官方的命令大全https://redis.io/commands

  • 相关阅读:
    淘宝nginx的学习使用,安装及反向代理,负载均衡
    Linux5
    Linux4
    Linux权限相关及yum源的配置
    linux基本命令及python3的环境配置
    使用Guava RateLimiter限流
    Runnable与Callable 区别
    [Kafka] 如何保证消息不丢失
    [多线程] 等待所有任务执行完成
    [Docker] 快速安装mysql
  • 原文地址:https://www.cnblogs.com/chou1214/p/12405748.html
Copyright © 2011-2022 走看看