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

 

posted @ 2020-03-04 00:05  洲渚皓月掩映  阅读(32)  评论(0编辑  收藏