Linux 上安装 Redis

Stella981
• 阅读 629

Linux 上安装 redis

redis 下载

下载链接 http://download.redis.io/releases/


Redis中国用户组 http://www.redis.cn/


Redis中国用户组(China Redis User Group),简称CRUG,成立于2016年5月20日,是中国地区最大的Redis技术交流社区,CRUG在成立时就得到了Redis官方的认可,并且凝聚了包括新浪微博、唯品会、去哪儿、小米、饿了么、搜狐、百度、陌陌、滴滴、阿里云、360、腾讯、美团、京东、今日头条、优酷土豆等公司众多的一线工程师和技术专家,累计覆盖Redis用户数万人。CRUG旨在汇聚国内Redis爱好者,共同探讨和交流Redis的使用经验和成长心得,共享Redis成果。

redis 版本

Redis 使用标准版本标记进行版本控制:major.minor.patchlevel。偶数的版本号表示稳定的版本。
目前企业中生产环境的主流版本是 3.2

redis 安装步骤

下载、解压、编译Redis

wget tar

# 下载、解压、编译 Redis 。需要先安装 gcc 编译工具
$ wget http://download.redis.io/releases/redis-5.0.4.tar.gz
$ tar xzf redis-5.0.4.tar.gz
$ cd redis-5.0.4
$ make # 编译
$ make PREFIX=/usr/local/redis/redis-3.2.8 install # 在指定位置生成 bin 目录,便于执行指令。

# 进入到解压后的 src 目录,通过如下命令启动Redis
$ src/redis-server

# 您可以使用内置的客户端与Redis进行交互
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

redis 安装实战

# 解压后,make 之前。
[root@localhost redis-3.2.8]# pwd
/usr/local/redis/redis-3.2.8
[root@localhost redis-3.2.8]# ll
total 196
-rw-rw-r--.  1 root root 85775 Feb 12  2017 00-RELEASENOTES
-rw-rw-r--.  1 root root    53 Feb 12  2017 BUGS
-rw-rw-r--.  1 root root  1805 Feb 12  2017 CONTRIBUTING
-rw-rw-r--.  1 root root  1487 Feb 12  2017 COPYING
drwxrwxr-x.  7 root root   143 Feb 12  2017 deps
-rw-rw-r--.  1 root root    11 Feb 12  2017 INSTALL
-rw-rw-r--.  1 root root   151 Feb 12  2017 Makefile
-rw-rw-r--.  1 root root  4223 Feb 12  2017 MANIFESTO
-rw-rw-r--.  1 root root  6834 Feb 12  2017 README.md
-rw-rw-r--.  1 root root 46695 Feb 12  2017 redis.conf
-rwxrwxr-x.  1 root root   271 Feb 12  2017 runtest
-rwxrwxr-x.  1 root root   280 Feb 12  2017 runtest-cluster
-rwxrwxr-x.  1 root root   281 Feb 12  2017 runtest-sentinel
-rw-rw-r--.  1 root root  7606 Feb 12  2017 sentinel.conf
drwxrwxr-x.  2 root root  4096 Feb 12  2017 src
drwxrwxr-x. 10 root root   167 Feb 12  2017 tests
drwxrwxr-x.  7 root root  4096 Feb 12  2017 utils

编译

# CentOS7 最小版 自带 make 。但是没有 gcc 工具。
[root@localhost ~]# make
make: *** No targets specified and no makefile found.  Stop.


# 使用 make 编译失败,因为没有安装 gcc。 gcc: Command not found cc: command not found
[root@localhost redis-3.2.8]# make
...
cd hiredis && make static
make[3]: Entering directory `/usr/local/redis/redis-3.2.8/deps/hiredis'
gcc -std=c99 -pedantic -c -O3 -fPIC  -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb  net.c
make[3]: gcc: Command not found
make[3]: *** [net.o] Error 127
make[3]: Leaving directory `/usr/local/redis/redis-3.2.8/deps/hiredis'
make[2]: *** [hiredis] Error 2
make[2]: Leaving directory `/usr/local/redis/redis-3.2.8/deps'
make[1]: [persist-settings] Error 2 (ignored)
    CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] Error 127
make[1]: Leaving directory `/usr/local/redis/redis-3.2.8/src'
make: *** [all] Error 2


# 已经安装 gcc ,但是还是报错。考虑到上次执行 make 失败可能有影响。删除后重新解压缩,编译成功。
[root@localhost redis-3.2.8]# make 
cd src && make all
make[1]: Entering directory `/usr/local/redis/redis-3.2.8/src'
    CC adlist.o
In file included from adlist.c:34:0:
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
 #include <jemalloc/jemalloc.h>
                               ^
compilation terminated.
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/usr/local/redis/redis-3.2.8/src'
make: *** [all] Error 2
# 方案:考虑到上次执行 make 失败可能有影响。删除这个 redis ,重新解压缩,编译成功。


# make 成功
[root@localhost redis-3.2.8]# make
total 204
-rw-rw-r--.  1 root root 85775 Feb 12  2017 00-RELEASENOTES
-rw-rw-r--.  1 root root    53 Feb 12  2017 BUGS
-rw-rw-r--.  1 root root  1805 Feb 12  2017 CONTRIBUTING
-rw-rw-r--.  1 root root  1487 Feb 12  2017 COPYING
drwxrwxr-x.  7 root root   211 Jul 20 22:21 deps
-rw-rw-r--.  1 root root    11 Feb 12  2017 INSTALL
-rw-rw-r--.  1 root root   151 Feb 12  2017 Makefile
-rw-rw-r--.  1 root root  4223 Feb 12  2017 MANIFESTO
-rw-rw-r--.  1 root root  6834 Feb 12  2017 README.md
-rw-rw-r--.  1 root root 46695 Feb 12  2017 redis.conf
-rwxrwxr-x.  1 root root   271 Feb 12  2017 runtest
-rwxrwxr-x.  1 root root   280 Feb 12  2017 runtest-cluster
-rwxrwxr-x.  1 root root   281 Feb 12  2017 runtest-sentinel
-rw-rw-r--.  1 root root  7606 Feb 12  2017 sentinel.conf
drwxrwxr-x.  2 root root  8192 Jul 20 22:22 src
drwxrwxr-x. 10 root root   167 Feb 12  2017 tests
drwxrwxr-x.  7 root root  4096 Feb 12  2017 utils

# 启动 redis 服务端
[root@localhost redis-3.2.8]# src/redis-server 
4754:C 20 Jul 22:26:56.606 # Warning: no config file specified, using the default config. In order to specify a config file use src/redis-server /path/to/redis.conf

# 启动 redis 客户端
[root@localhost redis-3.2.8]# src/redis-cli
127.0.0.1:6379> keys * 
(empty list or set)
127.0.0.1:6379> set foo 'chang'
OK
127.0.0.1:6379> get foo
"chang"
127.0.0.1:6379> set foo '长河'
OK
127.0.0.1:6379> get foo
"\xe9\x95\xbf\xe6\xb2\xb3"

安装

# make install 安装将产生一个 bin 文件夹。便于操作 redis 。
[root@localhost redis-3.2.8]# make PREFIX=/usr/local/redis/redis-3.2.8 install
cd src && make install
make[1]: Entering directory `/usr/local/redis/redis-3.2.8/src'

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

    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
make[1]: Leaving directory `/usr/local/redis/redis-3.2.8/src'
[root@localhost redis-3.2.8]# ll
total 204
-rw-rw-r--.  1 root root 85775 Feb 12  2017 00-RELEASENOTES
drwxr-xr-x.  2 root root   134 Jul 20 23:12 bin
-rw-rw-r--.  1 root root    53 Feb 12  2017 BUGS
-rw-rw-r--.  1 root root  1805 Feb 12  2017 CONTRIBUTING
-rw-rw-r--.  1 root root  1487 Feb 12  2017 COPYING
drwxrwxr-x.  7 root root   211 Jul 20 22:21 deps
-rw-rw-r--.  1 root root    11 Feb 12  2017 INSTALL
-rw-rw-r--.  1 root root   151 Feb 12  2017 Makefile
-rw-rw-r--.  1 root root  4223 Feb 12  2017 MANIFESTO
-rw-rw-r--.  1 root root  6834 Feb 12  2017 README.md
-rw-rw-r--.  1 root root 46695 Feb 12  2017 redis.conf
-rwxrwxr-x.  1 root root   271 Feb 12  2017 runtest
-rwxrwxr-x.  1 root root   280 Feb 12  2017 runtest-cluster
-rwxrwxr-x.  1 root root   281 Feb 12  2017 runtest-sentinel
-rw-rw-r--.  1 root root  7606 Feb 12  2017 sentinel.conf
drwxrwxr-x.  2 root root  8192 Jul 20 22:22 src
drwxrwxr-x. 10 root root   167 Feb 12  2017 tests
drwxrwxr-x.  7 root root  4096 Feb 12  2017 utils

# make install 在指定位置生成了 bin 目录,其中存放了操作 redis 的指令。
[root@localhost redis-3.2.8]# ll bin
total 15060
-rwxr-xr-x. 1 root root 2433000 Jul 20 23:12 redis-benchmark
-rwxr-xr-x. 1 root root   25088 Jul 20 23:12 redis-check-aof
-rwxr-xr-x. 1 root root 5181784 Jul 20 23:12 redis-check-rdb
-rwxr-xr-x. 1 root root 2585792 Jul 20 23:12 redis-cli
lrwxrwxrwx. 1 root root      12 Jul 20 23:12 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 5181784 Jul 20 23:12 redis-server

联网安装 gcc

# yum 搜索 gcc-c++ 安装包
[root@localhost ~]# yum search gcc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.neusoft.edu.cn
 * extras: mirror.bit.edu.cn
 * updates: mirrors.neusoft.edu.cn
====================================================== N/S matched: gcc =======================================================
gcc-c++.x86_64 : C++ support for GCC

# yum 安装 gcc-c++
[root@localhost develop]# yum install gcc-c++
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.lzu.edu.cn
 * extras: mirror.bit.edu.cn
 * updates: mirror.lzu.edu.cn
Package gcc-c++-4.8.5-36.el7_6.2.x86_64 already installed and latest version
Nothing to do


# 使用 gcc/g++/c++ -v 查看 gcc 是否安装。
[root@localhost develop]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)

[root@localhost develop]# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)

无网络情况下 如何安装GCC

无网络情况下 如何安装GCC https://www.linuxidc.com/Linux/2014-09/107134.htm

思路 配置本地 yum 源。createrepo mount 挂载镜像

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这