赞
踩
目录
Redis 是完全开源免费的,遵守BSD协议,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。
特点:
支持数据的持久化,可以将内存中的数据保存到硬盘,在重启后再次加载使用。
支持的数据结构丰富,String,list,set, zset, hash等等。
支持数据备份,master-slave模式进行数据备份。
优势:
性能高,Redis能读的速度是110000次/s,写的速度是81000次/s。
数据类型丰富
原子性,redis中所有操作都是原子的,并且多个操作也支持原子性
丰富的特性,如通知,key过期等。
说明:该例的示例步骤基于ubuntu16版本。
在离线安装redis前先安装两个软件,gcc和make,为方便安装可以先将用户切换到root下(使用 su 命令,需要输入root的密码)
1)安装gcc
apt-get install gcc
2)安装make
apt-get install make
关于gcc和make
GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分。GCC是Linux下重要的编译工具。
make工具的定义是通过编写的makefile脚本文件描述整个工程的编译、链接规则;通过脚本文件,对于复杂的工程也可以只通过一个命令就完成整个编译过程。类似于java中的maven
3)下载redis5,本例下载到了/home/lise目录下。
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
注: wget简介
wget是linux下常用的文件下载工具,wget支持http,https,ftp等协议,支持使用http代理。
wget有很多参数,常用的有一下几个:
-V --version 显示wget的版本
-o --output-file=file 将信息写入file,如果不提供默认以下载的文件作为文件名。
-v --verbose 详细输出,默认值
-t --tries=number 设置重试次数,0表示无限制
1)在/usr/local目录下创建一个redis目录又来放置解压后的redis。
mkdir /usr/local/redis
2)在本例中redis下载在/home/lisen目录,来到该目录执行解压
tar -zxvf redis-5.0.3.tar.gz -C /usr/local/redis
3)编译-安装(在/usr/local/redis/redis-5.0.3目录下执行)
- #编译
- make
-
- #安装
- make install
编译成功的输出:
安装完成时的输出:
可以查看编译完成的redis命令文件:
ls /usr/local/bin/redis*
文件 | 作用 |
---|---|
/usr/local/bin/redis-benchmark | 性能测试工具 |
/usr/local/bin/redis-check-aof | 更新日志检查 |
/usr/local/bin/redis-check-dump | 本地数据文件检查 |
/usr/local/bin/redis-cli | 命令行操作工具 |
/usr/local/bin/redis-server | 服务器程序 |
在执行编译后,安装之前,可以选择性的执行make test,我们下载的一般都是release版本,该步骤是可选的(该步骤运行所有的单元测试代码,需要较长的时间),如果执行时报:You need tcl 8.5 or newer in order to run the Redis test,则需要先安装tcl,可以使用:
wget https://nchc.dl.sourceforge.net/project/tcl/Tcl/8.6.8/tcl8.6.8-src.tar.gz执行安装。
vim /usr/local/redis/redis-5.0.3/redis.conf
配置文件需要做如下修改:
1)启动
安装成功后可以使用redis-server命令进行启动,改命令已经放入/usr/local/bin目录下,且该目录已经放入path环境变量,所以不必进入redis的安装目录也可以执行redis-server命令,在执行时为了使在/usr/local/redis/redis-5.0.3/redis.conf配置文件起效,需要作为启动参数提供。
redis-server /usr/local/redis/redis-5.0.3/redis.conf
注意:为了能正常读取redis.conf配置文件,需要切换到root用户,或通过sudo命令启动。
启动成功后可以通过如下命令查看:
ps -aux|grep redis
2)关闭
可以使用如下命令进行关闭
- redis-cli shutdown #未设置密码,直接关闭
- redis-cli -a 密码 shutdown #设置密码,在关闭时需要提供密码
1)在设置开机启动之前先确定是否安装了sysv-rc-conf
dpkg -l | grep sysv-rc-conf
如果没有安装则先安装该软件。
注:sysv-rc-conf 是功能强大的服务管理软件
apt-get install sysv-rc-conf
安装完成后可以通过如下命令来启动该程序
sysv-rc-conf
2)将启动脚本redis_init_script(位于安装目录下的utils目录下)复制到/etc/init.d下,重命名为redis-5.0.3
- #将启动脚本拷贝到init.d目录
- cp /usr/local/redis/redis-5.0.3/utils/redis_init_script /etc/init.d/
-
- #进入init.d目录,重命名
- cd /etc/init.d
- mv redis_init_script redis-5.0.3
注: init.d目录即存放安装的服务的启动脚本
3)使用vim编辑启动脚本
- #进入/etc/init.d
- cd /etc/init.d
-
- vim redis-5.0.3
-
- # 将CONF修改为安装目录下的redis.conf
- REDISPORT=6379 #redis端口
- EXEC=/usr/local/bin/redis-server #redis server目录
- CLIEXEC=/usr/local/bin/redis-cli #redis cli目录
- PIDFILE=/var/run/redis_${REDISPORT}.pid #PID文件目录
- #CONF="/etc/redis/${REDISPORT}.conf" #启动配置文件目录
- CONF=/usr/local/redis/redis-5.0.3/redis.conf
4)使用sysv-rc-conf设置开机启动
使用方法:
操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择,用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。其中,“X”表示开启该服务。
5)如果启用了密码保护,则需要在启动脚本中做一些修改,否则在运行service redis-5.0.3 stop 时会报错。
注: 将 $CLIEXEC -p REDISPORT shutdown 修改为 CLIEXEC -p $REDISPORT -a 密码 shutdown
1) 在 usr/local/redis/redis-5.0.3 目录下,可以看到有utils目录
- [root@localhost redis-5.0.3]# ls
- 00-RELEASENOTES COPYING Makefile redis.conf runtest-sentinel tests
- BUGS deps MANIFESTO runtest sentinel.conf utils
- CONTRIBUTING INSTALL README.md runtest-cluster src
- [root@localhost redis-5.0.3]#
2) 进入utils目录,并指向install_server.sh脚本
- [root@localhost utils]# ./install_server.sh
- Welcome to the redis service installer
- This script will help you easily set up a running redis server
-
- Please select the redis port for this instance: [6379]
- Selecting default: 6379
- Please select the redis config file name [/etc/redis/6379.conf] /usr/local/redis/redis-5.0.3/redis.conf
- Please select the redis log file name [/var/log/redis_6379.log]
- Selected default - /var/log/redis_6379.log
- Please select the data directory for this instance [/var/lib/redis/6379]
- Selected default - /var/lib/redis/6379
- Please select the redis executable path [/usr/local/bin/redis-server]
- Selected config:
- Port : 6379
- Config file : /usr/local/redis/redis-5.0.3/redis.conf
- Log file : /var/log/redis_6379.log
- Data dir : /var/lib/redis/6379
- Executable : /usr/local/bin/redis-server
- Cli Executable : /usr/local/bin/redis-cli
- Is this ok? Then press ENTER to go on or Ctrl-C to abort.
- Copied /tmp/6379.conf => /etc/init.d/redis_6379
- Installing service...
- Successfully added to chkconfig!
- Successfully added to runlevels 345!
- /var/run/redis_6379.pid exists, process is already running or crashed
- Installation successful!
该命令是交互式的,需要交互式的输入port, redis.conf,log文件等。
3)在/etc/init.d/目录下可以看到redis_6379这个自启动脚本
- [root@localhost utils]# cd /etc/init.d
- [root@localhost init.d]# ls
- functions netconsole network README redis_6379 tomcat
- [root@localhost init.d]#
- ./usr/local/redis/redis-5
4) chkconfig --list命令查看
- [root@localhost init.d]# chkconfig --list
-
- 注:该输出结果只显示 SysV 服务,并不包含
- 原生 systemd 服务。SysV 配置数据
- 可能被原生 systemd 配置覆盖。
-
- 要列出 systemd 服务,请执行 'systemctl list-unit-files'。
- 查看在具体 target 启用的服务请执行
- 'systemctl list-dependencies [target]'。
-
- netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关
- network 0:关 1:关 2:开 3:开 4:开 5:开 6:关
- redis_6379 0:关 1:关 2:开 3:开 4:开 5:开 6:关
- tomcat 0:关 1:关 2:开 3:开 4:开 5:开 6:开
- [root@localhost init.d]#
可以看到redis程序在2,3,4,5这四个等级下是开机自启动的
在线安装比较简单,运行下面命令即可
apt-get install redis-server
查看安装的位置
whereis redis
修改redis.conf配置文件(/etc/redis/redis.conf),取消只能本地访问的限制即可。
查看安装的redis版本
redis-server -v
注:目前通过apt-get在线安装的redis-server版本为3.0.6,建议使用离线安装的方式安装 5.0.3版本。
在centos中使用
yum install redis
进行在线安装,如果现实未找到源,则可以先安装epel软件库,如果在执行安装
- yum install -y epel-release
-
- ....
- yum install redis
目前centos中在线安装的redis版本比较低,版本号大约是3.2.12
自启:
在/etc/init.d 目录下创建sh脚本如下:
- ##!/bin/bash
-
- # chkconfig: 2345 10 90
- # description: Start and Stop redis
-
- PATH=/usr/local/bin:/sbin:/usr/bin:/bin
-
- REDISPORT=6379 #实际环境而定
- EXEC=/bin/redis-server #实际环境而定
- REDIS_CLI=/bin/redis-cli #实际环境而定
-
- PIDFILE=/var/run/redis.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 exists, 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
设置权限:
- chmod +x /etc/init.d/redis
-
-
-
- # 尝试启动或停止redis
- service redis start
- service redis stop
-
-
- # 开启服务自启动
- chkconfig redis on
如果服务器开启了防火墙,则需要将redis使用的端口号加入防火墙。
ufw allow 6379
注:
开启防火墙 ufw enable
禁用防火墙 ufw disable
1)redis-cli 连接
redis-cli -h 127.0.0.1 -p 6379 -a 密码 --raw
注:如果没有设置密码可以不带-a参数,--raw参数用于解决中文显示乱码问题。
2) 使用RedisDesktopManager
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。