CentOS 7系统Redis 5.0.4安装使用

  2020年05月20日(Network Valentine’s Day),很开心,喜欢的人的甜言蜜语、鲜花礼品不算什么,今日是工资发放日才是真理,叮!

  来一张《挪威的森林》剧照:

  再煽情的来一段文中的经典语醒醒神:

  正值青春年华的我们,总会一次次不知觉望向远方,对远方的道路充满憧憬,尽管忽隐忽现,充满迷茫。有时候身边就像被浓雾紧紧包围,那种迷茫和无助只有自己能懂。尽管有点孤独,尽管带着迷茫和无奈,但我依然勇敢地面对,因为这就是我的青春,不是别人的,只属于我的。

  不要因为寂寞随便牵手,然后依赖上,人自由自在多好,纵使漂泊,那种经历也好过牢狱般的生活,所以我刻意不让自己对网络太依赖,对失去的人也保持淡然的态度,数千个擦肩而过中,你给谁机会谁就和你有缘分,纵没有甲,也会有乙。

  言归正传,转弯正题Redis:

1. Redis介绍

  Redis是一个开源免费的(BSD许可)、高性能的key-value数据库,内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。跟Memcached类似,不过数据可以持久化,而且支持的数据类型很丰富,它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。

  Redis所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(称为“全持久化模式”),官方教程:https://www.redis.net.cn/tutorial/3501.html
或者黄健宏编译的参考:http://redisdoc.com/

  Redis与其他key - value缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用;
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储;
  • Redis支持数据的备份,即master-slave模式的数据备份。

2. Redis 5.0.4安装使用

  Redis的代码遵循ANSI-C编写,可以在所有POSIX系统(如Linux, *BSD, Mac OS X, Solaris等)上安装运行,而且Redis并不依赖任何非标准库,也没有编译参数必需添加,Redis的安装简单易上手。

[root@chengyu ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core) 

1. 下载解压Redis

  Redis可以到它的官网:http://www.redis.cn/进行下载:

[root@chengyu ~]# mkdir -p /home/softwares/nosql
[root@chengyu ~]# cd /home/softwares/nosql/
[root@chengyu nosql]# wget http://download.redis.io/releases/redis-5.0.4.tar.gz

  Redis可以解压至任何目录,一个make安装即可获得执行、配置文件。

[root@chengyu nosql]# tar xzf redis-5.0.4.tar.gz
[root@chengyu nosql]# cd redis-5.0.4

2. 编译

  可以直接make,但是建议先make test确认当前系统环境与Redis 5.0.4适配:

[root@chengyu redis-5.0.4]# make
cd src && make all
make[1]: Entering directory `/home/softwares/nosql/redis-5.0.4/src'
Hint: It's a good idea to run 'make test' ;)
make[1]: Leaving directory `/home/softwares/nosql/redis-5.0.4/src'

  所以还是先make test:

[root@chengyu redis-5.0.4]# make test
cd src && make test
make[1]: Entering directory `/home/softwares/nosql/redis-5.0.4/src'
You need tcl 8.5 or newer in order to run the Redis test
make[1]: *** [test] Error 1
make[1]: Leaving directory `/home/softwares/nosql/redis-5.0.4/src'
make: *** [test] Error 2

  报错提示:需要tcl 8.5或者更高版本的tcl来运行Redis test

  解决:工具命令语言(Tcl:Tool Command Language)是一种解释性语言,可在 Unix、Windows 和 Apple Macintosh 操作系统上跨平台运行,并且是该语言的非常可移植的解释器,Tcl具有可嵌入性和可扩展性,自1988年由John Ousterhout创建以来已被广泛使用,可以直接yum install tcl安装使用,也可以自行下载安装:

[root@chengyu redis-5.0.4]# wget -P /home/softwares/nosql/ http://downloads.sourceforge.net/tcl/tcl8.6.8-src.tar.gz
[root@chengyu redis-5.0.4]# ll /home/softwares/nosql/
-rw-r--r-- 1 root root 9793786 Dec 22  2017 tcl8.6.8-src.tar.gz
[root@chengyu redis-5.0.4]# tar xzvf /home/softwares/nosql/tcl8.6.8-src.tar.gz -C /home/softwares/nosql/
[root@chengyu tcl8.6.8]# cd /home/softwares/nosql/tcl8.6.8/unix/
[root@chengyu unix]# ./configure
configure: creating ./config.status
config.status: creating Makefile
config.status: creating dltest/Makefile
config.status: creating tclConfig.sh
config.status: creating tcl.pc
[root@chengyu unix]# make
gcc -pipe -O2 -fomit-frame-pointer -DNDEBUG -Wall -fPIC  -Wl,--export-dynamic  -shared -o libthread2.8.2.so threadNs.o threadCmd.o threadSvCmd.o threadSpCmd.o threadPoolCmd.o psGdbm.o psLmdb.o threadSvListCmd.o threadSvKeylistCmd.o tclXkeylist.o threadUnix.o  -L/home/softwares/nosql/tcl8.6.8/unix -ltclstub8.6 
: libthread2.8.2.so
make[1]: Leaving directory `/home/softwares/nosql/tcl8.6.8/unix/pkgs/thread2.8.2'
[root@chengyu unix]# make install
Installing header files in /usr/local/include
Installing /home/softwares/nosql/tcl8.6.8/pkgs/thread2.8.2/generic/tclThread.h
Installing documentation in /usr/local/share/man
Installing /home/softwares/nosql/tcl8.6.8/pkgs/thread2.8.2/doc/man/thread.n
Installing /home/softwares/nosql/tcl8.6.8/pkgs/thread2.8.2/doc/man/tpool.n
Installing /home/softwares/nosql/tcl8.6.8/pkgs/thread2.8.2/doc/man/tsv.n
Installing /home/softwares/nosql/tcl8.6.8/pkgs/thread2.8.2/doc/man/ttrace.n
make[1]: Leaving directory `/home/softwares/nosql/tcl8.6.8/unix/pkgs/thread2.8.2'

  重新make test:

[root@chengyu unix]# cd /home/softwares/nosql/redis-5.0.4/
[root@chengyu redis-5.0.4]# make test

  对于最新稳定版5.0.4,可以先进行make test,test完毕后,如下表明当前环境下运行无误:
在这里插入图片描述
  接下来clean后重新make然后安装:

[root@chengyu redis-5.0.4]# make clean
cd src && make clean
make[1]: Entering directory `/home/softwares/nosql/redis-5.0.4/src'
rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-rdb redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep dict-benchmark
make[1]: Leaving directory `/home/softwares/nosql/redis-5.0.4/src'

  make试试:
在这里插入图片描述
    make命令执行完成之后,会在src目录下生成8个可执行文件:

[root@chengyu redis-5.0.4]# ls src -F | grep "*"
mkreleasehdr.sh*
redis-benchmark*
redis-check-aof*
redis-check-rdb*
redis-cli*
redis-sentinel*
redis-server*
redis-trib.rb*

  主要几个分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-rdb、redis-check-dump,它们的作用如下:

  • redis-server:Redis服务器的daemon启动程序;
  • redis-cli:Redis命令行操作工具,或者通过telnet进行纯文本协议操作;
  • redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能;
  • redis-check-dump:用于本地数据库检查;
  • redis-check-aof:更新日志检查;
  • redis-check-rdb:修复损坏的rdb备份文件。

3.安装

  可以使用make install PREFIX=/usr/local/redis 指定安装目录:

[root@chengyu redis-5.0.4]# mkdir -p /usr/local/redis
[root@chengyu redis-5.0.4]# make install PREFIX=/usr/local/redis

在这里插入图片描述
4.自启动

  make install安装命令是不带自启动脚本的,而redis官方提供了一个手动编译时的自启动脚本,但是需要通过另外一个工具来安装,切换到目录中的utils目录下:

[root@chengyu redis-5.0.4]# utils/install_server.sh

在这里插入图片描述
  在/etc/init.d/目录下可以看到redis_6379这个自启动脚本:

[root@chengyu redis-5.0.4]# ll /etc/init.d/
total 52
-rw-r--r--. 1 root root 13948 Sep 16  2015 functions
-rwxr-xr-x. 1 root root 10571 Sep 28  2018 mysqld
-rwxr-xr-x. 1 root root  2989 Sep 16  2015 netconsole
-rwxr-xr-x. 1 root root  6630 Sep 16  2015 network
-rw-r--r--  1 root root  1160 Mar 18 07:46 README
-rwxr-xr-x  1 root root  1702 May 20 11:16 redis_6379
-rwxr-xr-x  1 root root   406 Mar 19  2019 zookeeper

  也可以自己编写自启动脚本:

PATH=/usr/local/redis/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
REDIS_CLI=/usr/local/redis/bin/redis-cli

PIDFILE=/var/run/redis_6379.pid
CONF="/etc/redis.conf"

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
        if [ "$?"="0" ]
        then
              echo "Redis is running..."
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $REDIS_CLI -p $REDISPORT SHUTDOWN
                while [ -x ${PIDFILE} ]
               do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
   restart|force-reload)
        ${0} stop
        ${0} start
        ;;
  *)
    echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
        exit 1
esac

  下面验证安装成果:

[root@chengyu redis-5.0.4]# systemctl status redis_6379
● redis_6379.service - LSB: start and stop redis_6379
   Loaded: loaded (/etc/rc.d/init.d/redis_6379; bad; vendor preset: disabled)
   Active: active (running) since Wed 2020-05-20 08:05:11 CST; 3h 13min ago
     Docs: man:systemd-sysv-generator(8)
   CGroup: /system.slice/redis_6379.service
           └─1707 /usr/local/redis/bin/redis-server 127.0.0.1:6379

May 20 08:05:11 chengyu systemd[1]: Starting LSB: start and stop redis_6379...
May 20 08:05:11 chengyu redis_6379[1701]: Starting Redis server...
May 20 08:05:11 chengyu systemd[1]: Started LSB: start and stop redis_6379.
[root@chengyu redis-5.0.4]# systemctl stop redis_6379
[root@chengyu redis-5.0.4]# systemctl status redis_6379
● redis_6379.service - LSB: start and stop redis_6379
   Loaded: loaded (/etc/rc.d/init.d/redis_6379; bad; vendor preset: disabled)
   Active: inactive (dead) since Wed 2020-05-20 11:19:05 CST; 2s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 5158 ExecStop=/etc/rc.d/init.d/redis_6379 stop (code=exited, status=0/SUCCESS)

May 20 08:05:11 chengyu systemd[1]: Starting LSB: start and stop redis_6379...
May 20 08:05:11 chengyu redis_6379[1701]: Starting Redis server...
May 20 08:05:11 chengyu systemd[1]: Started LSB: start and stop redis_6379.
May 20 11:19:05 chengyu systemd[1]: Stopping LSB: start and stop redis_6379...
May 20 11:19:05 chengyu redis_6379[5158]: Stopping ...
May 20 11:19:05 chengyu redis_6379[5158]: Redis stopped
May 20 11:19:05 chengyu systemd[1]: Stopped LSB: start and stop redis_6379.
[root@chengyu redis-5.0.4]# systemctl start redis_6379
[root@chengyu redis-5.0.4]# systemctl status redis_6379
● redis_6379.service - LSB: start and stop redis_6379
   Loaded: loaded (/etc/rc.d/init.d/redis_6379; bad; vendor preset: disabled)
   Active: active (running) since Wed 2020-05-20 11:19:14 CST; 1s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 5158 ExecStop=/etc/rc.d/init.d/redis_6379 stop (code=exited, status=0/SUCCESS)
  Process: 5185 ExecStart=/etc/rc.d/init.d/redis_6379 start (code=exited, status=0/SUCCESS)
    Tasks: 4
   CGroup: /system.slice/redis_6379.service
           └─5187 /usr/local/bin/redis-server 127.0.0.1:6379

May 20 11:19:14 chengyu systemd[1]: Starting LSB: start and stop redis_6379...
May 20 11:19:14 chengyu redis_6379[5185]: Starting Redis server...
May 20 11:19:14 chengyu systemd[1]: Started LSB: start and stop redis_6379.

5.查看进程,确认Redis已经启动
[root@chengyu redis-5.0.4]# ps -ef | grep redis
在这里插入图片描述
6.验证并关闭Redis服务

[root@chengyu redis-5.0.4]# redis-cli ping
PONG
[root@chengyu redis-5.0.4]# redis-cli shutdown
[root@chengyu redis-5.0.4]# redis-cli ping
Could not connect to Redis at 127.0.0.1:6379: 
Connection refused

7.用客户端测试一下是否启动成功

[root@chengyu redis-5.0.4]# systemctl restart redis_6379
[root@chengyu redis-5.0.4]#  redis-cli

  已经成功安装了Redis客户端,尝试一下:

[root@chengyu ~]#  redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set test 20200520-loveday
OK
127.0.0.1:6379> get test
"20200520-loveday"

  另外想要除本地以外的机子访问修改配置文件:
    [root@chengyu ~]# vim /etc/redis.conf
    bind 192.183.3.194 127.0.0.1 --这是指redis所在服务器的IP地址,而不是远程访问的机子IP
    protected-mode no
设置密码(保证连接保密与安全性):
    requirepass redistest
    daemonize yes --Redis进程后台运行

  这是往日测试机Redis的安装笔记,今天抽空整理一下。

  2020年05月20日,借一句“我永远喜欢你,不是说我会十年二十年一辈子都喜欢你,而是指,我这一刻喜欢你的程度,让我有勇气说出来我永远喜欢你!”,钟哥,十五年了,节日快乐!END!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
redis安装 1: 下载redis-5.0.4.tar.gz 2: 解压源码并进入目录 tar zxvf redis-5.0.4.tar.gz cd redis-5.0.4 3: 不用configure 4: 直接make (如果是32位机器 make 32bit) 查看linux机器是32位还是64位的方法:file /bin/ls 注:易碰到的问题,时间错误. 原因: 源码是官方configure过的,但官方configure时,生成的文件有时间戳信息, Make只能发生在configure之后, 如果你的虚拟机的时间不对,比如说是2012年 解决: date -s ' yyyy-mm-dd hh:mm:ss ' 重写时间 再 clock -w 写入cmos 5: 可选步骤: make test 测试编译情况 (可能出现: need tcl >8.4这种情况, yum -y install tcl ) 6: 安装到指定的目录,比如 /usr/local/redis make PREFIX=/usr/local/redis install 注: PREFIX要大写 7: 复制配置文件 cp redis.conf /usr/local/redis 注path为解压后的安装包路径 /root/gsj/redis-3.0.6 8: 让redis以后台进程的形式运行 vim /usr/local/redis/redis.conf 编辑redis.conf配置文件,修改如下内容; daemonize yes 9: make install之后,cd /usr/local/redis/bin得到如下几个文件 redis-benchmark 性能测试工具 redis-check-aof 日志文件检测工(比如断电造成日志损坏,可以检测并修复) redis-check-dump 快照文件检测工具,效果类上 redis-cli 客户端 redis-server 服务端 10: 启动与连接 启动redis并指定配置文件 cd /usr/local/redis ./bin/redis-server ./redis.conf #设置随机启动 vim /etc/rc.local 最后添加: /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf 连接: 用redis-cli cd /usr/local/redis/bin/ ./redis-cli #进入 exit /quit #退出 关闭redis pkill redis-server #关闭 ./redis-cli shutdown #关闭 查看是否启动成功 ps -ef | grep redis #查看端口是否占用 netstat -tunpl | grep 6379 11: 测试 String(字符串)类型: set name lijie #设置键name的值为lijie get name #获取name的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值