Ubuntu 安装 Redis

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 1. 下载并安装 redis 2.6.16版   sudo mkdir /usr/local/src/Redis cd /usr/local/src/Redis sudo wget http://download.

1. 下载并安装 redis 2.6.16版

 

sudo mkdir /usr/local/src/Redis

cd /usr/local/src/Redis

sudo wget http://download.redis.io/releases/redis-2.6.16.tar.gz

tar -zxf redis-2.6.16.tar.gz
cd redis-2.6.16

sudo make

2. 检验编译是否 正确

sudo make test

 

[cpp]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
 
  1. <span style="font-size:14px;">sounion@ubuntu:/usr/local/src/redis-2.6.16$ make test  
  2. cd src && make test  
  3. make[1]: Entering directory `/usr/local/src/redis-2.6.16/src'  
  4. You need tcl 8.5 or newer in order to run the Redis test  
  5. make[1]: *** [test] Error 1  
  6. make[1]: Leaving directory `/usr/local/src/redis-2.6.16/src'  
  7. make: *** [test] Error 2  
  8. </span>  


安装 tcl 8.5 后可以解决上述编译错误。

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
 
  1. <span style="font-size:14px;">sounion@ubuntu:/usr/local/src/redis-2.6.16$ sudo apt-get install tcl  
  2. Reading package lists... Done  
  3. Building dependency tree         
  4. Reading state information... Done  
  5. The following package was automatically installed and is no longer required:  
  6.   tdb-tools  
  7. Use 'apt-get autoremove' to remove them.  
  8. The following extra packages will be installed:  
  9.   tcl8.5  
  10. Suggested packages:  
  11.   tclreadline  
  12. The following NEW packages will be installed:  
  13.   tcl tcl8.5  
  14. 0 upgraded, 2 newly installed, 0 to remove and 565 not upgraded.  
  15. Need to get 1,102 kB of archives.  
  16. After this operation, 3,862 kB of additional disk space will be used.  
  17. Do you want to continue [Y/n]? y  
  18. Get:1 http://mirrors.sohu.com/ubuntu/ precise/main tcl8.5 amd64 8.5.11-1ubuntu1 [1,098 kB]  
  19. Get:2 http://mirrors.sohu.com/ubuntu/ precise/main tcl all 8.5.0-2 [4,690 B]  
  20. Fetched 1,102 kB in 3s (303 kB/s)  
  21. Selecting previously unselected package tcl8.5.  
  22. (Reading database ... 199470 files and directories currently installed.)  
  23. Unpacking tcl8.5 (from .../tcl8.5_8.5.11-1ubuntu1_amd64.deb) ...  
  24. Selecting previously unselected package tcl.  
  25. Unpacking tcl (from .../archives/tcl_8.5.0-2_all.deb) ...  
  26. Processing triggers for man-db ...  
  27. Setting up tcl8.5 (8.5.11-1ubuntu1) ...  
  28. update-alternatives: using /usr/bin/tclsh8.5 to provide /usr/bin/tclsh (tclsh) in auto mode.  
  29. Setting up tcl (8.5.0-2) ...  
  30. update-alternatives: using /usr/bin/tclsh-default to provide /usr/bin/tclsh (tclsh) in auto mode.  
  31. Processing triggers for libc-bin ...  
  32. ldconfig deferred processing now taking place  
  33. </span>  

 

 

3. 手工启动redis,测试redis是否运行正常

a)执行命令手工启动redis server:     该命令将使用缺省参数

./src/redis-server

b)检查进程是否有Redis了:ps aux | grep redis,可以看见进程列表中有一个叫“src/redis-server”的进程了

 

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
 
  1. <span style="font-size:14px;">sounion@ubuntu:~/Desktop$ ps aux | grep redis  
  2. sounion  65350  0.0  0.0  35024  1960 pts/1    Sl+  07:28   0:00 ./src/redis-server  
  3. sounion  65441  0.0  0.0  13584   916 pts/4    S+   07:31   0:00 grep --color=auto redis  
  4. </span>  


c) 启动redis自带的客户端,进行测试:
        # src/redis-cli -- 启动客户端并连接本地Redis
        # set foo bar -- 提示 “ok”说明设置键值正常。
        # get foo -- 能够提示返回正确的“bar”,说明运行正常。
        # quit -- 退出客户端

 

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
 
  1. <span style="font-size:14px;">sounion@ubuntu:/usr/local/src/redis-2.6.16$ ./src/redis-cli   
  2. redis 127.0.0.1:6379> set foo bar  
  3. OK  
  4. redis 127.0.0.1:6379> get foo  
  5. "bar"  
  6. redis 127.0.0.1:6379> quit  
  7. </span>  

 

d) 如果希望使用自己的 redis.conf 配置文件,可以使用如下命令:

./src/redis-server /path/to/redis.conf

 

e) 如果希望额外覆盖 redis.conf 配置文件中的某些参数,可以直接在命令行中使用参数:

./src/redis-server /etc/redis.conf  --loglevel debug

./sr/redis-server  --port 9999 --slaveof 127.0.0.1 6379

4.  开启多个redis 服务器实例

 

一台Redis服务器,分成多个节点,每个节点分配一个端口(6380,6381…),默认端口是6379

如果已经开启了 一个redis 服务实例,再次执行 ./src/redis-server 会产生如下错误

 

[html]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
 
  1. <span style="font-size:14px;">sounion@ubuntu:/usr/local/src/redis-2.6.16$ sudo ./src/redis-server   
  2. [347] 19 Apr 07:47:00.859 # Warning: no config file specified, using the default config. In order to specify a config file use ./src/redis-server /path/to/redis.conf  
  3. [347] 19 Apr 07:47:00.861 * Max number of open files set to 10032  
  4. [347] 19 Apr 07:47:00.861 # Opening port 6379: bind: Address already in use  
  5. </span>  

 

 

 

 

每个节点对应一个Redis配置文件,如:redis6380.conf、redis6381.conf

cp redis.conf  redis6380.conf

vi redis6380.conf

pidfile : pidfile/var/run/redis/redis_6380.pid

port 6380

logfile : logfile/var/log/redis/redis_6380.log

rdbfile : dbfilenamedump_6380.rdb

 

启动多个redis实例:

./src/redis-server /usr/local/redis/redis6380.conf

./src/redis-server /usr/local/redis/redis6381.conf

 

5、安装 redis-server

如果只是偶尔测试使用,可以使用 ./src/redis-server 方式直接启动。

但是如果是生产环境,需要进行 redis-server 安装部署。

 

命令:

cd /us/local/src/redis-2.6.16//utils

sudo ./install_server.sh

这个悲催的install_server.sh 命令必须在进入 utils 目录后再执行!

因为它的脚本写法以来一些相对目录路径!

 

[cpp]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
 
  1. sounion@ubuntu:/usr/local/src/redis-2.6.16/utils$ sudo ./install_server.sh   
  2. Welcome to the redis service installer  
  3. This script will help you easily set up a running redis server  
  4.   
  5.   
  6. Please select the redis port for this instance: [6379]   
  7. Selecting default: 6379  
  8. Please select the redis config file name [/etc/redis/6379.conf]   
  9. Selected default - /etc/redis/6379.conf  
  10. Please select the redis log file name [/var/log/redis_6379.log]   
  11. Selected default - /var/log/redis_6379.log  
  12. Please select the data directory for this instance [/var/lib/redis/6379]   
  13. Selected default - /var/lib/redis/6379  
  14. Please select the redis executable path [] /usr/local/src/redis-2.6.16/src/redis-server  
  15. s#^port [0-9]{4}$#port 6379#;s#^logfile .+$#logfile /var/log/redis_6379.log#;s#^dir .+$#dir /var/lib/redis/6379#;s#^pidfile .+$#pidfile /var/run/redis_6379.pid#;s#^daemonize no$#daemonize yes#;  
  16. Copied /tmp/6379.conf => /etc/init.d/redis_6379  
  17. Installing service...  
  18. update-rc.d: warning: /etc/init.d/redis_6379 missing LSB information  
  19. update-rc.d: see <http://wiki.debian.org/LSBInitScripts>  
  20.  Adding system startup for /etc/init.d/redis_6379 ...  
  21.    /etc/rc0.d/K20redis_6379 -> ../init.d/redis_6379  
  22.    /etc/rc1.d/K20redis_6379 -> ../init.d/redis_6379  
  23.    /etc/rc6.d/K20redis_6379 -> ../init.d/redis_6379  
  24.    /etc/rc2.d/S20redis_6379 -> ../init.d/redis_6379  
  25.    /etc/rc3.d/S20redis_6379 -> ../init.d/redis_6379  
  26.    /etc/rc4.d/S20redis_6379 -> ../init.d/redis_6379  
  27.    /etc/rc5.d/S20redis_6379 -> ../init.d/redis_6379  
  28. Success!  
  29. Starting Redis server...  
  30. Installation successful!  

 

 

6、添加到开机启动

如果进行了上述生产环境安装,则不再需要手动添加开机启动。

否则,需要修改

sudo vim /etc/rc.local

添加 /usr/local/src/redis-2.6.16/src/redis-server redis.conf

 

7、修改redis配置

如果 vm.overcommit_memory=0, 则在低内存状态时,后台redis 保存服务可能会失败。


需要修改配置文件/etc/sysctl.conf  添加 vm.overcommit_memory=1 然后重新启动使之生效。

刷新配置生效 sysctl vm.overcommit_memory=1

 

补充介绍

如果内存情况比较紧张的话,需要设定内核参数: /proc/sys/vm/overcommit_memory

这里说一下这个配置的含义:

/proc/sys/vm/overcommit_memory

该文件指定了内核针对内存分配的策略,其值可以是0、1、2。

0,表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。

1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。

2,表示内核允许分配超过所有物理内存和交换空间总和的内存

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(五):18.04安装多版本CUDA
这篇博客文章介绍了在Ubuntu 18.04系统上如何安装和切换不同版本的CUDA,以及如何安装不同版本的cuDNN。
231 2
|
2月前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
4521 3
|
27天前
|
Ubuntu 开发工具 git
Ubuntu安装homebrew的完整教程
本文介绍了如何在没有公网的情况下安装 Homebrew。首先访问 Homebrew 官网,然后通过阿里云的镜像克隆安装脚本,并创建普通用户进行安装。接着修改 `install.sh` 文件指向国内镜像,执行安装命令。最后配置环境变量并更换 Homebrew 源为国内镜像,确保安装顺利。
174 50
|
2月前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
168 4
Linux系统之Ubuntu安装cockpit管理工具
|
2月前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
181 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
2月前
|
Ubuntu Linux C语言
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
本文介绍了在Ubuntu 18.04系统上编译安装OpenCV 3.4.0及其扩展包opencv_contrib 3.4.0的详细步骤,包括下载源码、安装依赖、配置CMake和编译安装,以及常见问题的解决方法。
165 1
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
|
2月前
|
Ubuntu 虚拟化
软件安装(二):VMware ubuntu20.04 安装步骤
这篇文章是关于如何在VMware Workstation 16 Player上安装Ubuntu 20.04桌面版的详细步骤指南。
200 2
软件安装(二):VMware ubuntu20.04 安装步骤
|
1月前
|
存储 SQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
|
2月前
|
NoSQL Ubuntu Linux
Redis 安装
10月更文挑战第14天
58 1
|
27天前
|
NoSQL 编译器 Linux
【赵渝强老师】Redis的安装与访问
本文基于Redis 6.2版本,详细介绍了在CentOS 7 64位虚拟机环境中部署Redis的步骤。内容包括安装GCC编译器、创建安装目录、解压安装包、编译安装、配置文件修改、启动服务及验证等操作。视频讲解和相关图片帮助理解每一步骤。