`

Redis2.8的安装部署和维护

 
阅读更多
Redis在linux上的安装

步骤1:
首先从官网下在redis正式版的压缩包redis-2.8.19.tar.gz
http://download.redis.io/releases/redis-2.8.19.tar.gz
步骤2:编译源程序:
tar zxvf redis-2.8.19.tar.gz
[neil@neilhost Downloads]$ tar zxvf redis-2.8.19.tar.gz
[neil@neilhost Downloads]$ cd redis-2.8.19/src
MongoDB解压之后就可以使用了,但Redis需要编译,但是没有配置。
[neil@neilhost src]$ make
.......此处是大量编译过程,省略。可能有一些警告,不去官它们.............
    CC setproctitle.o
    CC hyperloglog.o
    CC latency.o
    CC sparkline.o
    LINK redis-server
    INSTALL redis-sentinel
    CC redis-cli.o
    LINK redis-cli
    CC redis-benchmark.o
    LINK redis-benchmark
    CC redis-check-dump.o
    LINK redis-check-dump
    CC redis-check-aof.o
    LINK redis-check-aof

Hint: It's a good idea to run 'make test' ;)
进入src进行安装
[neil@neilhost src]$ sudo make install
[sudo] password for neil:

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

    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
这时候,我们可以看看src下的文件:
[neil@neilhost src]$ ll

可以看到此时,src文件夹下出现了一些绿色的文件,这些文件就是我们以后需要用到的命令文件。
步骤3:
移动文件,便于管理:(所有源代码安装的软件都安装在/usr/local下,如apache等)
创建两个文件夹,bin用于存放命令,etc拥有存放配置文件。
[neil@neilhost src]$ sudo mkdir -p /usr/local/redis/bin
[neil@neilhost src]$ sudo mkdir -p /usr/local/redis/etc
-p是递归创建。
接下来,将redis-2.8.19文件夹下的redis.conf复制到/usr/local/redis/etc/
并将src目录下的7个命令文件(绿色的),移动到/usr/local/redis/bin/
[neil@neilhost src]$ cd ..
[neil@neilhost redis-2.8.19]$ ls
00-RELEASENOTES  COPYING  Makefile   redis.conf        sentinel.conf  utils
BUGS             deps     MANIFESTO  runtest           src
CONTRIBUTING     INSTALL  README     runtest-sentinel  tests
[neil@neilhost redis-2.8.19]$ sudo mv ./redis.conf /usr/local/redis/etc/
[sudo] password for neil:
[neil@neilhost redis-2.8.19]$ cd src
[neil@neilhost src]$ sudo mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-server /usr/local/redis/bin/
步骤4:启动Redis服务:

首先进入刚才安装redis的目录:
[neil@neilhost src]$ cd /usr/local/redis/bin
[neil@neilhost bin]$ ls
mkreleasehdr.sh  redis-check-aof   redis-cli       redis-server
redis-benchmark  redis-check-dump  redis-sentinel
之后我们启动redis服务。启动redis服务需要用到命令redis-server
[neil@neilhost bin]$ sudo ./redis-server
[sudo] password for neil:
[13019] 15 Mar 22:34:24.568 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
[13019] 15 Mar 22:34:24.569 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._                                                 
           _.-``__ ''-._                                            
      _.-``    `.  `_.  ''-._           Redis 2.8.19 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                  
(    '      ,       .-`  | `,    )     Running in stand alone mode
|`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
|    `-._   `._    /     _.-'    |     PID: 13019
  `-._    `-._  `-./  _.-'    _.-'                                  
|`-._`-._    `-.__.-'    _.-'_.-'|                                 
|    `-._`-._        _.-'_.-'    |           http://redis.io       
  `-._    `-._`-.__.-'_.-'    _.-'                                  
|`-._`-._    `-.__.-'    _.-'_.-'|                                 
|    `-._`-._        _.-'_.-'    |                                 
  `-._    `-._`-.__.-'_.-'    _.-'                                  
      `-._    `-.__.-'    _.-'                                      
          `-._        _.-'                                          
              `-.__.-'                                              

[13019] 15 Mar 22:34:24.570 # Server started, Redis version 2.8.19
[13019] 15 Mar 22:34:24.570 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
[13019] 15 Mar 22:34:24.570 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
[13019] 15 Mar 22:34:24.570 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
[13019] 15 Mar 22:34:24.570 * The server is now ready to accept connections on port 6379
但是,这样做的话,我们并没有使用etc的下的配置文件进行启动。

如果希望通过指定的配置文件启动,需要在启动时指定配置文件:

这里我们先用ctrl+C来终止服务,然后查看redis服务是否终止干净了,之后通过设置配置文件来启动服务:
^C[13019 | signal handler] (1426430158) Received SIGINT scheduling shutdown...
[13019] 15 Mar 22:35:58.502 # User requested shutdown...
[13019] 15 Mar 22:35:58.502 * Saving the final RDB snapshot before exiting.
[13019] 15 Mar 22:35:58.683 * DB saved on disk
[13019] 15 Mar 22:35:58.683 # Redis is now ready to exit, bye bye...
[neil@neilhost bin]$ pstree -p | grep redis
[neil@neilhost bin]$ sudo ./redis-server /usr/local/redis/etc/redis.conf
[13054] 15 Mar 22:36:47.951 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._                                                 
           _.-``__ ''-._                                            
      _.-``    `.  `_.  ''-._           Redis 2.8.19 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                  
(    '      ,       .-`  | `,    )     Running in stand alone mode
|`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
|    `-._   `._    /     _.-'    |     PID: 13054
  `-._    `-._  `-./  _.-'    _.-'                                  
|`-._`-._    `-.__.-'    _.-'_.-'|                                 
|    `-._`-._        _.-'_.-'    |           http://redis.io       
  `-._    `-._`-.__.-'_.-'    _.-'                                  
|`-._`-._    `-.__.-'    _.-'_.-'|                                 
|    `-._`-._        _.-'_.-'    |                                 
  `-._    `-._`-.__.-'_.-'    _.-'                                  
      `-._    `-.__.-'    _.-'                                      
          `-._        _.-'                                          
              `-.__.-'                                              

[13054] 15 Mar 22:36:47.952 # Server started, Redis version 2.8.19
[13054] 15 Mar 22:36:47.952 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
[13054] 15 Mar 22:36:47.952 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
[13054] 15 Mar 22:36:47.952 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
[13054] 15 Mar 22:36:47.952 * DB loaded from disk: 0.000 seconds
[13054] 15 Mar 22:36:47.952 * The server is now ready to accept connections on port 6379
但是,现在redis仍然是在前台运行。

如果要后台启动该怎么办呢?

回想一下,后台启动mysql的方法是在后面加一个 &符号。如:
#mysql_safe --user=mysql &
后台启动mongodb,则在后面加上一个 --fork。具体方法请看我之前的MongDB入门系列(2)。

但是,这两种方法都不适用于redis。redis的后台启动并运行需要通过配置文件中的参数设置。

Redis的配置文件中有哪些配置呢?
daemonize 如果需要在后台运行,把该项改为yes
pidfile 配置多个pid的地址 默认在/var/run/redis.pid
bind 绑定ip,设置后只接受来自该ip的请求
port 监听端口,默认是6379
loglevel 分为4个等级:debug verbose notice warning
logfile 用于配置log文件地址
databases 设置数据库个数,默认使用的数据库为0
save 设置redis进行数据库镜像的频率。
rdbcompression 在进行镜像备份时,是否进行压缩
dbfilename 镜像备份文件的文件名
Dir 数据库镜像备份的文件放置路径
Slaveof 设置数据库为其他数据库的从数据库
Masterauth 主数据库连接需要的密码验证
Requriepass 设置 登陆时需要使用密码
Maxclients 限制同时使用的客户数量
Maxmemory 设置redis能够使用的最大内存
Appendonly 开启append only模式
Appendfsync 设置对appendonly.aof文件同步的频率(对数据进行备份的第二种方式)
vm-enabled 是否开启虚拟内存支持   (vm开头的参数都是配置虚拟内存的)
vm-swap-file 设置虚拟内存的交换文件路径
vm-max-memory 设置redis使用的最大物理内存大小
vm-page-size 设置虚拟内存的页大小
vm-pages 设置交换文件的总的page数量
vm-max-threads 设置VM IO同时使用的线程数量
Glueoutputbuf 把小的输出缓存存放在一起
hash-max-zipmap-entries 设置hash的临界值
Activerehashing 重新hash

本文是oschina博客用户happyBKs的文章,转载请声明出处。http://my.oschina.net/u/1156339/blog/387335
言归正传,如果需要redis后台运行需要将daemonize由no改为yes。
首先在超级权限下打开redis.conf。
[neil@neilhost bin]$ sudo gedit /usr/local/redis/etc/redis.conf
之后将daemonize由no改为yes。


保存退出。
之后我们再次使用配置文件启动redis-server。
可以看到,redis是后台启动了,并且通过ps命令可以查看到redis正在运行。
[neil@neilhost bin]$ sudo ./redis-server /usr/local/redis/etc/redis.conf
[neil@neilhost bin]$ ps -ef | grep redis
root     13154     1  0 22:53 ?        00:00:00 ./redis-server *:6379
neil     13162  8143  0 22:54 pts/0    00:00:00 grep --color=auto redis
[neil@neilhost bin]$ pstree -p | grep redis
           |-redis-server(13154)-+-{redis-server}(13156)
           |                     `-{redis-server}(13157)


Redis服务端默认连接端口是6379.
mysql 服务端默认连接端口是3306
Mogodb 服务端默认连接端口是27017,还有28017。
在平时,我们往往需要查看6379端口是否被占用。可以用以下命令:

[neil@neilhost bin]$ netstat -tunpl | grep 6379
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      -                  
tcp6       0      0 :::6379                 :::*                    LISTEN      -                  
[neil@neilhost bin]$ sudo netstat -tunpl | grep 6379
[sudo] password for neil:
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      13154/./redis-serve
tcp6       0      0 :::6379                 :::*                    LISTEN      13154/./redis-serve
注意,redis服务需要su权限才能查看,不然只能检查到6379被某个进程占用,但是看不到进程名称。

至此,redis服务已经按照配置文件启动成功!!
客户端登陆
步骤5:
客户端连接

[neil@neilhost bin]$ sudo /usr/local/redis/bin/redis-cli
127.0.0.1:6379>
关闭Redis服务

步骤6:
停止Redis实例
我们可以使用pkill redis-server
[neil@neilhost bin]$ sudo pkill redis-server
[neil@neilhost bin]$ sudo netstat -tunpl | grep 6379
[neil@neilhost bin]$
[neil@neilhost bin]$ pstree -p | grep redis
[neil@neilhost bin]$
[neil@neilhost bin]$
[neil@neilhost bin]$ sudo /usr/local/redis/bin/redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>
not connected> exit

关闭之后,发现6379就不再被占用了,redis的进程也都没有了。
客户登陆也无法成功了。

也可以使用/usr/local/redis/bin/redis-cli shutdown,这种方法使用客户端命令redis-cli
[neil@neilhost bin]$ sudo ./redis-server /usr/local/redis/etc/redis.conf
[neil@neilhost bin]$ pstree -p | grep redis
           |-redis-server(13509)-+-{redis-server}(13511)
           |                     `-{redis-server}(13512)
[neil@neilhost bin]$ sudo /usr/local/redis/bin/redis-cli shutdown
[neil@neilhost bin]$ pstree -p | grep redis
[neil@neilhost bin]$
[neil@neilhost bin]$ sudo netstat -tunpl | grep 6379
[neil@neilhost bin]$
[neil@neilhost bin]$
还可以使用命令killall和kill -9,可以仿照我在之前博客中的关闭Mongdb的方法。
分享到:
评论

相关推荐

    redis2.8、tomcat8.5、jdk1.8

    Redis 2.8、Tomcat 8.5 和 JDK 1.8 是IT行业中非常重要的三个组件,分别在数据存储、应用服务器和Java开发环境中扮演关键角色...在部署和维护过程中,熟悉Linux命令行操作,理解网络配置和日志分析也是至关重要的技能。

    redis2.8要的拿走

    总的来说,这个压缩包提供了在Windows环境下搭建和使用Redis 2.8所需的所有关键文件和文档,无论是初次接触Redis的新手,还是寻求优化现有部署的开发者,都能从中受益。通过对这些文件的学习和实践,你可以深入理解...

    redis-2.8-win.zip

    在维护和优化方面,定期检查Redis内存使用情况,监控慢查询日志,以及适时进行数据清理和优化,都是必要的工作。同时,了解和掌握Redis的性能指标,如命令执行速度、网络I/O等,有助于诊断和解决问题。 总之,...

    redis2.8配置文件中文翻译版

    Redis 2.8 配置文件是管理Redis服务器的关键组件,它定义了服务器的各种行为、性能和安全性设置。以下是对配置文件中部分重要参数的详细...在部署和维护Redis时,理解这些参数可以帮助优化服务器性能、安全性和可靠性。

    redis-2.8.13安装配置主从服务器Master-Slave

    以上就是关于 Redis 2.8.13 版本安装配置主从服务器的相关知识点,包括安装、配置、复制原理、故障转移、客户端使用、性能优化、监控维护以及安全措施等。理解并掌握这些内容对于构建高可用的 Redis 集群至关重要。

    redis(window)

    在Windows环境下安装和使用Redis可能会有一些不同于Linux系统的特性和注意事项。 1. **安装Redis on Windows** - Redis官方并不直接提供Windows版本,但社区提供了预编译的Windows二进制版本,如MSOpenTech或Redis...

    jedis2.8 与 spring3.2 整合

    整合Jedis和Spring,可以实现更便捷的Redis操作,提高代码的可读性和可维护性。 1. 添加依赖:在项目中引入Jedis和Spring的依赖库,如在Maven的pom.xml中添加相关依赖项。 2. 配置Spring:创建一个配置类,定义...

    tomcat 通过Redis,nginx实现多机热备

    例如,`nginx-1.11.1.zip`和`Redis-x64-2.8.2400.zip`是Nginx和Redis的不同版本,`sessionshare`系列文件可能是不同Java版本下的session共享实现,而`output`可能包含部署过程的输出日志。 总的来说,这个配置方案...

    redis-stable.tar.gz

    Redis,全称Remote Dictionary Server,是一款高性能的键值存储系统,常被用于数据库、缓存和消息中间件等...在实际应用中,我们需要熟练掌握Redis集群的搭建、管理和维护技巧,以便更好地利用这一强大的数据存储系统。

    Big Data Glossary-大数据术语

    AWS Elastic Beanstalk是一种服务,用于自动部署和管理Web应用和服务。它支持多种流行的语言和框架,并且可以轻松地扩展应用程序。 **5.4 Heroku** Heroku是一个云平台即服务(PaaS),允许开发者快速部署、管理和...

    论当前一种先进实用的IT系统架构设计(修改版).docx

    当前讨论的是一种先进的IT系统架构设计,主要针对基于JAVA开发的项目,旨在实现高性能、高可靠性、伸缩性、可维护性和安全性。该架构利用分布式集群,并结合开源软件和低成本硬件,以达到高性价比。 1. **系统架构...

    Zenoss和Zabbix对比分析.docx

    - **细粒度控制**:用户可以限制自己可以维护的监控对象列表,增强安全性。 ##### 2.8 无商业版本 - **纯开源模式**:Zabbix没有商业版与社区版的区别,仅对增值服务收费,降低了使用门槛。 #### 三、Zabbix监控...

    jfinal-3.0-manual

    - **面向切面编程**:通过AOP技术实现代码的解耦合,提高代码的可维护性和可扩展性。 **4.2 Interceptor** - **拦截器定义**:定义拦截器,用于拦截Controller中的方法调用。 **4.3 Before** - **前置通知**:在...

    java8源码-advanceJava:收录质量较高的网上文章

    起不在维护本仓库,内容已经迁移至个人网站 ; 谢谢支持!!! 每周进行一次文章收入!! 二 基础文章 2.1 java基础系列 ; ;// 2020-12-03 ; ; ; ; 2.2并发编程 ; ; ; 2.3 计算机基础 ; ;//2020-10-26 ;// ...

    Spring Boot面试题(2022最新版)-重点

    - **类型安全和重构友好:** JavaConfig 使得配置更加类型安全,并且支持 Java 的重构功能,提高了代码的可维护性。 **2.2 Spring Boot 自动配置原理是什么?** Spring Boot 的自动配置机制基于条件注解 (`@...

Global site tag (gtag.js) - Google Analytics