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复制积压缓冲区来存储在从节点与主节点心跳失败期间的命令,在重连成功后根据复制积压缓冲区的位置来判断是否进行部分复制。    <br></br><br></br>    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 语言代码。

重点功能总结

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

    1、2.8版本的部分复制psync1,该功能提供了部分复制功能,避免之前稍有异常便出现全量复制的问题。

    2、3.0版本的官方分布式解决方案Redis Cluster。

    3、4.0版本的异步惰性删除功能,解决了长期以来Redis大key引起的阻塞问题,为Redis性能优化指明了异步化方向。

    4、5.0版本的Stream数据类型,支持多播的可持久化的消息队列。

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

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

wget <http://download.redis.io/releases/redis-5.0.4.tar.gz&gt;

tar -xzvf redis-5.0.4.tar.gz

cd redis-5.0.4/

make PREFIX=/app/redis-5.0.4 install

在编译安装后,在old-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 &amp; 

由于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 &quot;a*&quot;            获取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&gt;

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。