Redis实战-Redis单机环境搭建

Posted 张志翔ۤ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis实战-Redis单机环境搭建相关的知识,希望对你有一定的参考价值。

        Redis,业界也用了很多年了,可以说不管是什么体量的公司,基本都会选择使用它来做为公司业务服务的缓存层,它也成为了业界缓存的事实标准(但是需要缓存海量数据的业务场景中不太适用,比如需要缓存100GB以上的订单生命周期数据,目前还没有听说过有人缓存大量数据到Redis中的情况,海量数据存储和查询可以通过ElasticSearch来做)。

        注:本文作为专栏的第一篇文章,首先将带领大家搭建起来 Redis 单机实战环境,第二篇文章在这个单机的基础上配置集群环境,我们后面所有的操作都将会在这个集群上进行展开。

一、Redis简介

        Redis 是一种基于键值对(key-value)的NoSQL数据库,它支持包括 String(字符串)、Hash(哈希)、List(列表)、Set(集合)、ZSet(有序集合)、BitMaps(位图)、CEO(地理信息定位)等多种数据结构和算法组成,因此它可以满足很多的应用场景。Redis 将所有数据存储到内存中,所以它的读写性能非常惊人。

        Redis 将内存的数据利用快照和日志的形式保存到硬盘上,避免因为断电或者机器故障导致的内存数据丢失,同时它还提供了键过期、发布订阅、事务、流水线、Lua脚本等强大功能。

        Redis可以做什么?

        缓存:Redis 提供了强大的缓存机制,合理地使用缓存不进可以加快数据的访问速度,而且能够有效减低后端数据源的压力。

        消息队列:Redis 提供了发布订阅功能和阻塞队列的功能,虽然和专业的消息队列相比还有很大的差距,但是对于一般的消息队列功能基本可以满足。

        排行榜:Redis 提供了列表和有序集合数据结构,合理地使用这些数据结构可以很方便地构建各种排行榜系统。

        Redis 在合适场景就像一把瑞士军刀一样所向披靡。

二、准备工作

        本专栏是基于Centos7.8环境的基础上搭建的,Centos 也是官方推荐的操作系统。

        Redis 集群至少需要6台服务器(3主3从模式),原因是主节点需要三台服务器(redis 投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以二个节点无法构成集群),每个主节点又需要一个从节点来做高可用,所以我们需要虚拟化6台服务器来做这个事情

        我这边通过虚拟机的方式创建6台服务器,服务器配置信息,如下所示:

主机名称角色IP地址硬盘容量内存容量CPU核数
redis-01master192.168.181.13220GB2GB2C
redis-02master192.168.181.13320GB2GB2C
redis-03master192.168.181.13420GB2GB2C
redis-04slave192.168.181.13520GB2GB2C
redis-05slave192.168.181.13620GB2GB2C
redis-06slave192.168.181.13720GB2GB2C

        注:本文的单机环境我们在 redis-01 节点上完成搭建。

、Redis安装

$ cd /opt
$ wget http://download.redis.io/releases/redis-3.0.7.tar.gz
$ tar xzf redis-3.0.7.tar.gz
$ ln -s redis-3.0.7 redis
$ cd redis
$ make
$ make install

        1)下载Redis指定版本的源码压缩包到当前目录。

        2)解压缩Redis源码压缩包。

        3)建立一个redis目录的软连接,指向redis-3.0.7。

        4)进入redis目录。

        5)编译(编译之前确保操作系统已经安装gcc)。

        6)安装。

       这里有两点要注意:第一,第3步中建立了一个redis目录的软链接,这样做是为了不把redis目录固定在指定版本上,有利于Redis未来版本升级,算是安装软件的一种好习惯。第二,第6步中的安装是将Redis的相关运行文件放到/usr/local/bin/下,这样就可以在任意目录下执行Redis的命令。例如安装后,可以在任何目录执行redis-cli–v查看Redis的版本。

        2、验证

$ redis-cli -v 
redis-cli 3.0.7

        能够打印出版本号说明单机就安装完成了。

三、Redis启动

        Redis安装之后,src和/usr/local/bin目录下多了几个以redis开头可执行文件,我们称之为Redis Shell,这些可执行文件可以做很多事情,例如可以启动和停止Redis、可以检测和修复Redis的持久化文件,还可以检测Redis的性能。

        将配置写到指定文件里,例如我们将配置写到了/opt/redis/redis.conf中,那么只需要执行如下命令即可启动Redis,命令如下:

$ nohup redis-server /opt/redis/redis.conf &
$ ps -aux|grep redis

        注:Redis目录下都会有一个redis.conf配置文件,里面就是Redis的默认配置,通常来讲我们会在一台机器上启动多个Redis,并且将配置集中管理在指定目录下,而且配置不是完全手写的,而是将redis.conf作为模板进行修改。通过配置文件启动的方式提供了更大的灵活性,所以大部分生产环境会使用这种方式启动Redis。

四、Redis命令行客户端

        现在我们已经启动了Redis服务,下面将介绍如何使用redis-cli连接、操作Redis服务。redis-cli可以使用两种方式连接Redis服务器。

        第一种是交互方式:通过redis-cli-h{host}-p{port}的方式连接到Redis服务,之后所有的操作都是通过交互的方式实现,不需要再执行redis-cli了,例如:

$ redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"

        第二种是命令方式:用redis-cli-h ip{host}-p{port}{command}就可以直接得到命令的返回结果,例如:

$ redis-cli -h 127.0.0.1 -p 6379 get hello
"world"

        这里有两点要注意:1)如果没有-h参数,那么默认连接127.0.0.1;如果没有-p,那么默认6379端口,也就是说如果-h和-p都没写就是连接127.0.0.1:6379这个Redis实例。2)redis-cli是学习Redis的重要工具,后面的很多章节都是用它做讲解,同时redis-cli还提供了很多有价值的参数,可以帮助解决很多问题,有关于redis-cli的强大功能将在第3章进行详细介绍。

五、Redis停止

        Redis提供了shutdown命令来停止Redis服务,例如要停掉127.0.0.1上6379端口上的Redis服务,可以执行如下操作。

  $ redis-cli shutdown

        当使用redis-cli再次连接该Redis服务时,看到Redis已经“失联”。

$ redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused

        这里有三点需要注意一下:

        1)Redis关闭的过程:断开与客户端的连接、持久化文件生成,是一种相对优雅的关闭方式。

        2)除了可以通过shutdown命令关闭Redis服务以外,还可以通过kill进程号的方式关闭掉Redis,但是不要粗暴地使用kill-9强制杀死Redis服务,不但不会做持久化操作,还会造成缓冲区等资源不能被优雅关闭,极端情况会造成AOF和复制丢失数据的情况。

        3)shutdown还有一个参数,代表是否在关闭Redis前,生成持久化文件:

$ redis-cli shutdown nosave|save

        到此Redis单机环境搭建介绍完成。

以上是关于Redis实战-Redis单机环境搭建的主要内容,如果未能解决你的问题,请参考以下文章

linux 的环境搭建(二)--redis单机环境、生产环境、集群环境的搭建

Linux 环境下搭建单机版 Redis

Redis单机和集群环境搭建

NoSQL-redis-单机多实例,伪分布式环境搭建

redis单机搭建

快速搭建redis单机版和redis集群版