工作中一直在用 Redis,但是一直没有进行系统的总结,这个系列的博客将整体的介绍 Redis 的用法。

1、Redis 的简介

  Redis:REmote DIctionary Server(远程字典服务)。

  是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。是完全开源免费的,用C语言编写的,遵守BSD协议,高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化NoSQL数据库。

  具体详细的概念可以参考百度百科

  PS:关于 Redis 的具体概念以及具体应用场景,其实现在说都有些空洞,后面我们在介绍 Redis 的相关特性的时候会进行详细介绍。下面我们来直接进行安装(由于主流的都是在Linux服务器上使用Redis,很少有在Windows系统上使用的,所以下面我是以Linux版本的Redis为例进行安装)。

2、Redis 下载

  Redis 的官网是:https://redis.io   这是全英文的,英语不太好的,我们也可以查看中文网站:http://www.redis.cn/ 。

  在官网中点击 Check the downloads page

  

  进入下载页面,下载最新稳定版的 Redis:

  

3、安装环境

  我们采用虚拟机来模拟Linux服务器。虚拟机的安装教程可以参考我的这篇博客

  虚拟机安装完成之后,我们启动Linux系统,将第二步下载的 redis-4.0.9.tar.gz 文件通过工具复制到 /opt 目录下,然后在通过如下命令进行解压:

1 tar -zxf redis-4.0.9.tar.gz

  解压之后如下图所示:

  

  由于在安装过程中需要对源码进行编译,而编译依赖 gcc 环境。如下图所示,则是没有进行 gcc 的安装:

  

  下面,我们通过如下命令进行 gcc 的安装(yum 方式需要联网):

1 yum install gcc-c++

  安装完成之后,在输入 gcc -v 命令,则不会出现上面的提示信息了。

4、编译安装

  进入到第二步解压的Redis文件目录,然后输入 make 命令进行编译:

1 cd /opt/redis-4.0.9
2 make

  

  编译完成之后,还是在该目录下输入 make install 进行构建:

  该命令会生成 Redis的5个二进制文件,默认是在 /usr/local/bin 路径下,但是我们可以手动指定生成的文件位置,将 make install 变成:

1 make PREFIX=/usr/local/redis install 

  

  完成之后,就会在 /usr/local/redis/bin 目录下生成如下几个二进制文件:

  

  ①、redis-server:Redis服务器

  ②、redis-cli:Redis命令行客户端

  ③、redis-benchmark:Redis性能测试工具

  ④、redis-check-aof:AOF文件修复工具

  ⑤、redis-check-rdb:RDB文件检查工具

5、启动Redis

  首先,我们进入 Redis 文件的安装目录:

  

  可以看到该目下有 redis.conf 配置文件,这个文件特别重要,后期的很多配置都是在这里面进行,为了防止该文件被破坏,我们可以将该文件复制到 /etc/redis 目录下:

  

  然后通过如下命令即可启动:

1 /usr/local/redis/bin/redis-server /etc/redis/redis.conf

  启动后出现如下界面:

  

  注意:此种方式启动 Redis,当我们关闭命令窗口时,则 redis-server 程序也结束了,这显然是不友好的,我们需要将Redis设置为以守护进程的方式进行启动。

  在 redis.conf 文件中,找到daemonize,将其设置为yes即可:

  

  还是以上面的命令启动 redis-server 服务。

  启动之后可以通过如下命令查看 Redis 服务是否启动:

1 ps -ef | grep redis

  启动完成之后,我们执行第 4 步编译安装的 redis-cli 文件,输入如下命令进入 Redis 客户端:

1 /usr/local/redis/bin/redis-cli

  

6、关闭Redis

  ①、redis-cli shutdown:安全关闭,但是只适用于没有配置密码的场景(一般情况下不会给Redis设置密码)。

  ②、kill -9 pid:强制关闭,可能会造成Redis内存数据丢失。

7、注意事项

  ①、我们在第 4 步编译安装生成了五个二进制文件,每次要执行该文件都要输入全路径,很不方便,为了能在任何路径下执行该二进制文件,我们可以对其进行环境变量的配置。

  输入 vim /etc/profile 命令,将如下内容添加到文件末尾:

  

  接着输入:wq保存并退出,然后输入 source /etc/profile 使得配置文件生效即可。

  接着我们便可在任意路径下启动Redis服务了:(下面是根目录下启动)

  

  ②、可能有部分同学没有安装 gcc,直接在Redis解压目录下执行make 命令,会发现缺少编译器gcc,这时候通过 yum install gcc-c++ 命令安装gcc,然后接着执行 make 命令,但是发现还是报错:

  jemalloc/jemalloc.h:没有那个文件或目录

  原因:这次报错是因为第一次执行 make 命令有一些残存的文件没有清除干净,这时候需要执行 make distclean 命令后,再执行 make 命令即可。

作者:YSOcean
本文版权归作者所有,欢迎转载,但未经作者同意不能转载,否则保留追究法律责任的权利。

Redis 详解 (一) redis的简介和安装的更多相关文章

  1. RabbitMQ详解(一)------简介与安装(Docker)

    RABBITMQ详解(一)------简介与安装(DOCKER) 刚刚进入实习,在学习过程中没有接触过MQ,RabbitMQ 这个消息中间件,正好公司最近的项目中有用到,学习了解一下. 首先什么是MQ ...

  2. Redis 详解 (二) redis的配置文件介绍

    目录 1.开头说明 2.INCLUDES 3.MODULES 4.NETWORK 5.GENERAL 6.SNAPSHOTTING 7.REPLICATION 8.SECURITY 9.CLIENTS ...

  3. 大数据学习day11------hbase_day01----1. zk的监控机制,2动态感知服务上下线案例 3.HDFS-HA的高可用基本的工作原理 4. HDFS-HA的配置详解 5. HBASE(简介,安装,shell客户端,java客户端)

    1. ZK的监控机制 1.1 监听数据的变化  (1)监听一次 public class ChangeDataWacher { public static void main(String[] arg ...

  4. RabbitMQ详解(一)------简介与安装

    RabbitMQ 这个消息中间件,其实公司最近的项目中有用到,但是一直没有系统的整理,最近看完了<RabbitMQ实战  高效部署分布式消息队列>这本书,所以顺便写写. 那么关于 Rabb ...

  5. Redis 详解 (五) redis的五大数据类型实现原理

    目录 1.对象的类型与编码 ①.type属性 ②.encoding 属性和 *prt 指针 2.字符串对象 3.列表对象 4.哈希对象 5.集合对象 6.有序集合对象 7.五大数据类型的应用场景 8. ...

  6. Redis 详解 (四) redis的底层数据结构

    目录 1.演示数据类型的实现 2.简单动态字符串 3.链表 4.字典 5.跳跃表 6.整数集合 7.压缩列表 8.总结 上一篇博客我们介绍了 redis的五大数据类型详细用法,但是在 Redis 中, ...

  7. Redis 详解 (三) redis的五大数据类型详细用法

    目录 1.string 数据类型 2.hash 数据类型 3.list 数据类型 4.set 数据类型 5.zset 数据类型 6.系统相关命令 7.key 相关命令 我们说 Redis 相对于 Me ...

  8. Redis详解入门篇

    Redis详解入门篇 [本教程目录] 1.redis是什么2.redis的作者3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 – 简介 ...

  9. Redis详解入门篇(转载)

    Redis详解入门篇(转载) [本教程目录] 1.redis是什么2.redis的作者3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 ...

随机推荐

  1. 问题解决 : org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

    问题分析: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): ,即在mybatis中da ...

  2. Day11 - O - Coin Game HDU - 3951

    题目链接 思路:考虑第一个人取的方式: 1.每次能取的次数>= n, 一次取完 first win 2.每次能取1个,n是奇数 first win 3.一次取不完,这种情况下也分2种情况 1)s ...

  3. 「AT2021」キャンディーとN人の子供 / Children and Candies

    前言 今天练习赛出了这道题,由于我太菜没有在考场上做出来. 翻了题解后,感觉题解讲的并不是十分直观,所以自己写一篇. 题目大意 太长了,不讲了. 数据范围: \(1\leq N\leq 400\) \ ...

  4. 记一次NoHttpResponseException问题排查

    上传文件程序会有一定的概率提示错误,错误率大概在1%以下,错误信息是:org.apache.http.NoHttpResponseException , s3-us-west-1.amazonaws. ...

  5. 【剑指Offer面试编程题】题目1514:数值的整数次方---九度OJ

    题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 输入: 输入可能包含多个测试样例. 对于每个输入文件,第一行输入一个整数T, ...

  6. 学习打卡8:循环语句for、while

    流程图: /*循环结构的基本组成部分,一般可以分成四部分:1.初始化语句:在循环开始最初执行,而且只做唯一一次.2.条件判断:如果成立,则循环继续:如果不成立,则循环退出.3.循环体:重复要做的内容, ...

  7. Windows驱动开发-Device结构体

    每个驱动程序会创建一个或多个设备对象,每个设备对象都会有一个指针指向下一个设备对象 Device结构体源码 typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATIO ...

  8. question1 赋值运算操作符

    注意的问题书上讲的很详细了 下面是代码实现,但是VS有一个问题,strcpy安全性较低,虽然可以通脱编译,但是运行会报错,提示用strcpy_s()替代,但是,这里用strcpy()替代也不行, // ...

  9. IOS 导航栏颜色 标题

    修改导航栏颜 #define COLOR_TOMATO    [UIColor colorWithRed:255/255.0f green:99/255.0f blue:71/255.0f alpha ...

  10. php:数据库封装类

    <?phpclass DBDA{    public $host="localhost";    public $uid="root";    publi ...