专栏首页Web技术研发工具系列 | 如何快速编译安装 Redis

工具系列 | 如何快速编译安装 Redis

如何快速编译安装 Redis

一、编译安装

  • 下载、解压
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar -zxvf redis-3.2.8.tar.gz
cd  redis-3.2.8
  • make 编译
  • 编译之前
00-RELEASENOTES  BUGS  CONTRIBUTING  COPYING  deps  INSTALL  Makefile  MANIFESTO  README.md  redis.conf  runtest 
    runtest-cluster  runtest-sentinel  sentinel.conf  src  tests  utils
  • 编译完成之后,可以看到解压文件redis-3.0.7 中会有对应的src、conf等文件
  • 这和windows下安装解压的文件一样,大部分安装包都会有对应的类文件、配置文件和一些命令文件。
  • 进入src文件夹,执行make install进行Redis安装
tinywan@tinywan:~/redis-3.2.8/src$ sudo make install 
[sudo] tinywan 的密码: 

Hint: It's a good idea to run 'make test' ;)

    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install

二、部署文件结构

  • 首先为了方便管理,将Redis文件中的conf配置文件和常用命令移动到统一文件中
  • 创建以下文件目录
~/redis-3.2.8/src$ sudo mkdir -p /usr/local/redis/bin
~/redis-3.2.8/src$ sudo mkdir -p /usr/local/redis/etc
  • 切换到redis-3.2.8目录,移动redis.conf配置文件:
~/redis-3.2.8/src$ cd ..
~/redis-3.2.8$ sudo mv /home/tinywan/redis-3.2.8/redis.conf /usr/local/redis/etc
  • 继续进入到src目录执行其他文件移动:
~/redis-3.2.8$ cd src/
sudo mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli  
redis-sentinel redis-server redis-trib.rb /usr/local/redis/bin

三、配置和启动redis服务

  • 编辑redis.conf
cd /usr/local/redis/etc
vi redis.conf
  • 需要修改的参数
--后台运行
daemonize yes

--端口号
port 63700          

--和哪个网卡绑定,和客户端是什么网段没有关系,这里我绑定的是内网网卡,
bind 10.10.101.127   

-- AES("https://github.com/Tinywan/Lua-Nginx-Redis/blob/master/Redis/redis-install.md") 加密
-- 结果:b6Pbc42gP8hXPNLzZaDnhREijtn1BSVSIYTkhTXw8SuPGpWZvN5kVpVeEVBdEQDw7M/+EZuDS6FxTOtgD2QrPe6014LPEdv2DY+YSUQZ4cE=

requirepass b6Pbc42gP8hXPNLzZaDnhREijtn1BSVSIYTkhTXw8SuPGpWZvN5kVpVeEVBdEQDw7M/+EZuDS6FxTOtgD2QrPe6014LPEdv2DY+YSUQZ4cE=

-- db文件名
dbfilename dump63700.rdb

-- log 日志文件路径
logfile "/usr/local/redis/etc/redis_63700.log"

-- 安全考虑,rename-command 配置以下命令
rename-command FLUSHALL "tinywangithubFLUSHALL"

rename-command CONFIG "tinywangithubCONFIG"

rename-command SHUTDOWN "tinywangithubSHUTDOWN"

rename-command DEBUG "tinywangithubDEBUG"

启动redis服务,并指定启动服务配置文件,检测运行端口,为了安全,请不要使用root用户去启动

$ sudo chown -R www:www  /usr/local/redis/    //赋予指定该用户组,而非root账号
$ /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis63700.conf
$ ps -aux | grep redis
www      70764  0.6  0.1  38160      0:00 /usr/local/redis/bin/redis-server 127.0.0.1:63700
www   70768  0.0  0.0  15984      0:00 grep --color=auto redis
  • redis-cli启动、检测重置命令是否生效(结果:配置文件已经OK)
$ redis-cli -h 127.0.0.1 -p 63700 -a b6Pbc42gP8hXPNLzZaDnhREijtn1BSVSIYTkhTXw8SuPGpWZvN5kVpVeEVBdEQDw7M/+EZuDS6FxTOtgD2QrPe6014LPEdv2DY+YSUQZ4cE= 
    127.0.0.1:63700> set username tinywan
    OK
    127.0.0.1:63700> get username
    "tinywan"
    127.0.0.1:63700> SHUTDOWN
    (error) ERR unknown command 'SHUTDOWN'
    127.0.0.1:63700> FLUSHALL
    (error) ERR unknown command 'FLUSHALL'
    127.0.0.1:63700> tinywangithubFLUSHALL
    OK
    127.0.0.1:63700> get username
    (nil)
    127.0.0.1:63700>

远程链接出现的错误:

  • 修改配置文件:protected-mode yes 修改为protected-mode no

查看远程Redis服务器的版本 redis-cli -h 192.168.1.3 info | grep 'redis_version'

四、Redis开机启动的方法

  • Linux中设置Redis开机启动的方法
  • 环境:Ubuntu 16.04.2 LTS
  • 编辑脚本:vim /etc/init.d/redis
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
### BEGIN INIT INFO
# Provides:   redis6379
# Required-Start: $local_fs $network
# Required-Stop:  $local_fs
# Default-Start:  2 3 4 5
# Default-Stop:  0 1 6
# Short-Description: redis6379
# Description:  penavico redis 6379
### END INIT INFO

REDISPORT=6379  # 【1】修改一
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/local/redis/etc/redis_6379.conf"  # 【2】修改二

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac    
  • 注册事件,开机启动:update-rc.d redis defaults
  • 启动服务:sudo systemctl start redis
  • 停止服务:sudo systemctl stop redis
  • 查看服务是否启动:
www@Tinywan:~/redis-4.0.0/utils$ ps -aux | grep redis
root      1722  0.0  0.8  44752  8300 ?        Ssl  13:08   0:00 /usr/local/bin/redis-server 127.0.0.1:6379
www       1730  0.0  0.1  14224  1024 pts/0    S+   13:08   0:00 grep --color=auto redis

五、Redis关闭

  • 命令方式关闭
$ redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> shutdown
  • 进程号杀掉redis
ps -ef | grep redis
kill -9 XXX

六、Redis数据迁移

  • 查找RDB文件:
sudo find / -name dump.rdb
  • 进行远程拷贝备份文件:
scp ./dump.rdb www@192.168.1.18:/home/www/redis/
  • 数据迁移步骤如下
    • (1)关闭目标Redis服务;
    • (2)将相应的RDB文件或者AOF文件复制过去;
    • (3)设置REDIS的DIR或者开启AOF功能;
    • (4)启动目标REDIS服务;

本文分享自微信公众号 - 万少波的播客(Tinywanblog),作者:Tinywan

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-12-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hive快速入门系列(3) | 如何Mysql安装

      上一篇博文我们讲了hive的操作,并且知道默认的derby数据库不支持并发执行,因此我们选用Mysql存储Metastore。那么这篇博文带来的是如何安装M...

    不温卜火
  • Maven快速入门(一)Maven介绍及环境搭建

    做开发的程序员都知道,在系统开发需要各自各样的框架、工具。其中有一种工具不管你是初级程序员还是高级程序员都必须熟练掌握的,那就是项目管理工具(maven、ant...

    架构师精进
  • 面试官: 两个Redis实例怎么快速对比哪些数据不一致

    redis-full-check 是阿里云Redis&MongoDB团队开源的用于校验2个redis数据是否一致的工具,支持单节点、主从、集群版、以及多种pro...

    冷冷
  • 码云推荐 | 运维脚本工具库 kjyw

    快捷运维kjyw,运维脚本工具库,主要功能实现快速安装nginx、mysql、php、redis等,运维经常使用的脚本。 ? 项目简介 ? 快捷运维 kjyw,...

    码云Gitee
  • Ubuntu下如何更快地安装gcc编译器

    最近操作系统开始上实验课了,瞟了一眼实验目录,看到了“gcc”的字样,一下子勾起了不好的回忆。记得上学期上计组的时候,曾经尝试在自己电脑的虚拟机上安装 gcc ...

    Chor
  • Redis详解(一)------ redis的简介与安装

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

    IT可乐
  • C++系列:编译器是如何工作的

    源代码→ 预处理器→ 编译器→ 汇编程序→ 目标代码→ 链接器→ 可执行文件,最后打包好的文件就可以给电脑去判读运行了。

    小Bob来啦
  • redis入门(一)

    官方给出的读写速度可以达到10W/s,以下是我本机双核四线程低压i7上测试的对字符串的读写速度。

    用户6786055
  • Redis 起步

    Rdis和JQuery一样是纯粹为应用而产生的,这里记录的是在CentOS 5.7上学习入门文章: 1.Redis简介 ? Redis是一个key-value...

    张善友
  • Redis 起步

    http://www.cnblogs.com/shanyou/archive/2012/01/28/2330451.html

    bear_fish
  • swoole入门 初识

    如果你的业务中,有用到以上等特性,你又在用使用php,那么完全可以用swoole来完成了,再具体点的场景如下:

    风清醉
  • Redis入门(暂不更新) 原

    50个并发程序执行10万个请求,redis读的速度能达到每秒11万次,写的速度能达到每秒8万次。-官方数据

    晓歌
  • [新星计划]一文快速搞定Redis_数据类型及JavaApi操作

    一文快速搞懂系列讲究快速入门掌握一个新的大数据组件,帮助新手了解大数据技术,以下是系列文章:

    ChinaManor
  • redis-基本介绍与linux安装

    HyperLogLog:超小内存唯一值计数,12kb HyperLogLog,本质是字符串

    suwanbin
  • 听说Memcache你很豪横?-------------深入剖析Memcache 安装及管理数据库操作

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、...

    不吃小白菜
  • 2019精炼的大数据技术学习路线

    近年来大数据BigData、人工智能AI、物联网Iot等行业发展迅猛,很多人都想要从事大数据技术开发工作,但是,请问要怎么做,路线是什么?从哪里开始学?学哪些?...

    用户2292346
  • 如何优雅地在Redis中使用Lua

    今天讲一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运行在任何平台上,也可以嵌入到大多数语言当中,来扩展其功能。lua脚本是用C语言写...

    Bug开发工程师
  • 搭建 PySpider 爬虫服务

    腾讯云提供了开发者实验室教你搭建 PySpider 爬虫服务,教程内容如下,用户可以点击开发者实验室快速上机完成实验。

    小Q
  • 作为一个Java架构师程序员 你应该会什么

    一,JAVA架构师 1、语法:Java 程序员必须比较熟悉语法,在写代码的时候IDE 的编辑器对 某一行报错应该能够根据报错信息 知道是什么样的语法错误并且知道...

    Java高级架构

扫码关注云+社区

领取腾讯云代金券