redis开发环境为linux和osx,不支持windows
linux下安装redis
Redis的可执行文件说明
在redis的src目录下有5个可执行文件,如果编译过后使用make install命令,那么这些可执行文件在其他目录下都可以执行,否则只能到src目录下执行:./redis-server
可执行文件名 | 说明 |
---|---|
reids-server | Redis服务器 |
redis-cli | reids命令行客户端 |
redis-benchmark | redis性能测试工具 |
redis-check-aof | AOF文件修复工具 |
redis-check-dump | RDB文件修复工具 |
Redis支持数据类型
Redis基本操作
- 关闭redis-cli客户端:exit
启动和停止Redis
两种启动方式直接启动和通过初始化脚本启动Redis,分别适合开发环境和生产环境。
直接启动
$redis-server
Redis服务器默认会使用6379端口,通过 --port参数可以自定义端口:
$redis-server --port 6380
通过初始化脚本启动Redis
通过初始化脚本启动Redis,使得redis能岁系统自动运行,在生产环境中推荐。
在Redis源代码目录的utils文件夹中有一个名为redis_init_script的初始化脚本文件,内容如下:
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.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
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
我们需要配置Redis运行方式和持久化文件、日志文件的存储位置等。具体如下:
- 1.配置初始化脚本
首先将初始化脚本复制到/etc/init.d目录中,文件名为“redis_端口号”,其中端口号表示要让Redis监听的端口号,客户端通过该端口连接Redis。然后修改脚本第六话的REDISPORT变量的值为同样的端口号。 - 2.建立需要的文件夹
需要建立的目录及说明
目录名 | 说明 |
---|---|
/etc/redis | 存放Redis的配置文件 |
/var/redis/端口号 | 存放Redis的持久化文件 |
/var/log/redis | 日志路径 |
- 3.修改配置文件
首先将配置文件模板redis.conf(位于原代码目录的根目录中)复制到/etc/redis目录中,以端口号命名(如"6379.conf"),然后下表对其中部分进行修改。
参数 | 值 | 说明 |
---|---|---|
daemonize | yes | 使Redis以守护进程模式运行 |
pidfile | /var/run/redis_端口号.pid | 设置Redis的PID文件位置 |
port | 端口号 | 设置Reids的监听端口号 |
dir | /var/redis/端口号 | 设置持久化文件的存放位置 |
logfile | /var/log/redis/redis.log | 日志路径 |
现在就可以使用/etc/init.d/redis_端口号 start来启动Redis了。
- 使Redis随系统自动启
- 先在redis_6379头部加上
#!/bin/sh
#chkconfig: 2345 80 90
#description:auto_run
- 确保redis_6379具有执行权限: chmod 777 redis_6379
- 再执行命令
chkconfig --add redis_6379
Redis命令行客户端
redis-cli是Redis自带的基于命令行的的Redis客户端。通过redis-cli学习和测试Redis.
介绍如果通过redis-clis向Redis发送命令,并且对Redis命令返回值得不同类型进行简单的介绍。
发送命令
- 第一种将命令作为redis-cli的参数执行。
比如redis-cli SHUTDOWN。redis-cli执行时会自动默认配置(服务器127.0.0.1,端口6379)连接Redis,通过-h和-p参数可以自定义地址和端口号:
$redis-cli -h 127.0.0.1 -p 6379
- 第二种不附带参数运行redis-cli.
这样会进入交互模式,可以自由输入命令
$redis-cli
命令返回值
命令返回值有5种类型。
1.状态返回
2.错误回复
3.整数回复
4.字符串回复
5.多行字符串回复
配置
Redis的运行方式、持久化文件、日志文件的存储位置、绑定ip等都是可以配置的。
通过启动参数来设置。
通过参数port设置了Redis的端口号。
redis-server --port 6380
通过配置文件来设置
Redis支持通过配置文件来设置是否开启持久化、日志基本等。启用配置文件方法是在启动时将配置文件的路径作为启动参数传递给redis-server,如:
$ redis-server /path/to/redis.conf
Redis提供了一个配置文件的模板redis.conf,位于源代码目录的根目录中。
通过参数传递同名的配置选项会覆盖配置文件中相应的参数,如下:
$redis-server /path/to/redis.conf --loglevel warning
修改配置信息
在Redis运行时通过config set命令在不重新启动Redis的情况下动态修改部分Redis设置,如:
redis>CONFIG SET loglevel warning
并不是所有配置都可以使用CONFIG SET命令修改,附件B列出了哪些配置能够使用命令修改。
获取Redis当前配置
使用CONFIG GET命令, 如:
第一行字符串标识选项名,第二行是选项值。
多数据库
Redis是一个字典结构的存储服务器,一个Redis实例提供多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。