Redis 端口由来
redis默认端口是6379,其实这是有一定内涵的,它是由手机九宫格键盘字母“MERZ”的位置所对应的数字决定的。
目前Redis官方已经支持的平台有(Linux、MacOs),官方默认不支持Window
Window用户想体验的话,可以安装虚拟机,或者使用Microsoft Open Tech group 在 GitHub上开发了一个Win64的版本(https://github.com/MSOpenTech/redis)
docker方式安装(优先推荐)
容器时代,是我们运维的福音,简化了很多部署的麻烦,所以,我建议采用容器安装的方法
1 | # 拉取redis镜像(其实这个镜像是基于linux构建的) |
2 | docker pull redis |
3 | |
4 | # 启动redis(默认配置启动,如需自定义配置,可进行配置文件挂载到容器默认路径) |
5 | docker run --name myredis -d -p 16379:6379 redis |
6 | |
7 | # 进入redis内部控制台 |
8 | docker exec -it myredis redis-cli |
9 | |
10 | # 也可以先进入linux内,在进入redis控制台 |
11 | docker exec -it myredis bash |
12 | redis-cli |
13 | |
14 | # 为了让以后更方便的进入redis控制台,我们为它设置别名吧(以后直接在终端输入myredis即可进入redis控制台了) |
15 | vim /Users/Pocket/.bash_profile |
16 | alias myredis="docker exec -it myredis redis-cli" |
利用包管理工具安装(不准备docker部署的话这是最优选择)
每个平台都有其自身比较出名的包管理工具,知名的服务一般都可以通过他们安装
1 | # mac 安装 |
2 | brew install redis |
3 | |
4 | # ubuntu |
5 | apt-get install redis |
6 | |
7 | # redhat |
8 | yum install redis |
9 | |
10 | # 启动 |
11 | systemctl start redis |
12 | # 开机自启 |
13 | systemctl enable redis |
github源码安装(一般只有吃饱了没事干才源码编译)
可能存在一些特殊情况,所以我们也需要知道源码安装的方式。
但凡有得选择,不要装逼用源码,做任何事情都要遵循怎么简单高效就怎么来
源码编译,既不能用包管理工具控制进程的启动和停止(编写systemctl脚本可以做到,但是太麻烦),又容易让运维人员懵逼,一会这个安装,一会那个安装,会遭人嫌弃的。
1 | # 从github拉取源码,没有安装git(yum install git)命令的也可以用wget下载元源码(指定了分支2.8) |
2 | git clone --branch 2.8 --depth 1 https://github.com/antirez/redis.git |
3 | |
4 | # 进入代码目录 |
5 | cd redis |
6 | |
7 | # 执行编译命令(没有的话需要安装yum install make),同时也需要gcc的支持(yum install gcc) |
8 | make MALLOC=libc # make不添加参数可能报错 |
9 | ''' |
10 | make需要gcc环境支持 |
11 | 报错: |
12 | error: jemalloc/jemalloc.h: No such file or directory |
13 | 分析: |
14 | 原因是jemalloc重载了Linux下的ANSI C的malloc和free函数。解决办法:make时添加参数 |
15 | 解决: |
16 | make MALLOC=libc |
17 | |
18 | 成功后提示: |
19 | Hint: It's a good idea to run 'make test' |
20 | 如果用make test测试会发现(进入src目录进行测试,不然会提示离开src目录的警告错误): |
21 | [root@592905b2508b src]# make test |
22 | You need tcl 8.5 or newer in order to run the Redis test |
23 | make: *** [test] Error 1 |
24 | 解决方法: |
25 | yum install tcl |
26 | ''' |
27 | |
28 | # 进入src文件夹找到redis服务 |
29 | cd src |
30 | |
31 | # 以后台服务运行方式开启redis服务(如果需要自定义配置,可找到对应配置加载文件进行修改) |
32 | ./redis-server --daemonize yes |
33 | |
34 | # 进入控制台 |
35 | ./redis-cli |
36 | |
37 | # 如果需要快捷命令的话,可用软链接方式把命令链接到/usr/local/bin/redis-cli |
38 | ln -s src/redis-cli /usr/local/bin/redis-cli |
源码编译容易遇到的问题
没有gcc环境
make编译需要gcc环境支持
1
# 检查gcc是否安装
2
rpm -qa|grep gcc
3
4
# 安装gcc
5
yum install gcc -y
jemalloc重载问题
报错:error: jemalloc/jemalloc.h: No such file or directory
原因是jemalloc重载了Linux下的ANSI C的malloc和free函数。1
# 编译时加上参数
2
make MALLOC=libc
make test不通过问题
You need tcl 8.5 or newer in order to run the Redis test
没有tcl工具的支持1
# 检查是否安装tcl8.5以上版本
2
rpm -qa|grep tcl
3
4
# 安装tcl
5
yum install tcl -y
6
7
# 也可以源码安装(但凡可以yum,不要源码,太麻烦)
8
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
9
tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
10
cd /usr/local/tcl8.6.1/unix/
11
./configure
12
make
13
make install