1、redis简单说明
redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止redis支持的键值数据类型如下
字符串、列表(lists)、集合(sets)、有序集合(sorts sets)、哈希表(hashs)
### redis的应用场景
缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)
分布式集群架构中的session分离。
聊天室的在线好友列表。
任务队列。(秒杀、抢购、12306等等)
应用排行榜。
网站访问统计。
数据过期处理(可以精确到毫秒)
###查看centos 版本:
lsb_release -a | grep Release
Release: 6.3
2、准备工作
a. redis是C语言实现的,所以在Linux系统中需要安装gcc来进行编译,安装gcc请参考第三步。(gcc -v 若已安装 则跳过)
b.接下来需要安装Unix的Tcl工具,如果不安装的话后期我们将无法对Redis进行测试,完成安装之后make test会报错,安装tcl请参考
c. tcl包的下载地址是:[http://downloads.sourceforge.net/tcl/tcl8.6.3-src.tar.gz](http://downloads.sourceforge.net/tcl/tcl8.6.3-src.tar.gz)
d.安装完成上面的几个必须的包之后,即可以安装redis
3、下载redis
wget http://download.redis.io/releases/redis-3.0.0.tar.gz
4、编译源程序
tar zxvf redis-3.0.0.tar.gz
cd redis-3.0.0
make
cd src
make install
5、创建redis目录,移动文件,为了便于管理
mkdir -p /usr/local/redis/bin
mkdir -p /usr/local/redis/etc
cd ../../
cp redis-3.0.0/redis.conf /usr/local/redis/etc
cd redis-3.0.0/src
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin
6、启动redis服务(redis服务端的默认连接端口是6379)
#后端模式启动
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
(调整端口 可以修改/usr/local/redis/etc/redis.conf中大约45行)
#前端模式启动
/usr/local/redis/bin/redis-server
7、默认情况下,redis不是在后台运行的,我们需要把开启的redis后台运行
vi /usr/local/redis/etc/redis.conf (大约37行)
将daemonize的值改为yes
8、查看是否启动
ps -ef | grep redis
9、查看是否占用6379端口号
netstat -tunpl | grep 6379
10、再启动redis
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
11、客户端连接
/usr/local/redis/bin/redis-cli -p 6379
12、退出客户端
exit
或者(||)
quit
(||)
Ctrl+C
13、停止redis
/usr/local/redis/bin/redis-cli -p 6379 shutdown
或者
pkill redis-server
14、redis 启动配置
vi /etc/init.d/redis
添加如下代码
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
REDIS_CLI=/usr/local/redis/bin/redis-cli
PIDFILE=/var/run/redis.pid
CONF="/usr/local/redis/etc/redis.conf"
#AUTH="1234"
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
sleep 2
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
给/etc/init.d/redis 添加权限
chmod 744 /etc/init.d/redis
/etc/init.d/redis {start|stop|restart|force-reload}
15、redis的一些配置
daemonize 如果需要在后台运行,把该项改为yes
pidfile 配置多个pid的地质,默认在/var/ren/redis.pid
bind 绑定ip,设置后只接受来自该ip的请求
port 监听端口,默认为6379
timeout 设置客户端连接时的超时时间,单位为秒
loglevel 分为4级,debug、verbose、notice、warning
logfile 配置log文件地址 databases 设置数据库的个数,默认使用的数据库为0
save 设置redis进行数据库镜像的频率
rdbcompression 在进行镜像备份时,是否进行压缩
Dbfilename 镜像备份文件的文件名
Dir 数据库镜像备份的文件放置路径
Slaveof 设置数据库为其他数据库的从数据库
Masteauth 主数据库连接需要的密码验证
Requirepass 设置登陆时需要的使用的密码
Maxclients 限制同时连接的客户数量
Maxmemory 设置redis能够使用的最大内存
Appendonly 开启append only模式
Appendfsync 设置对appendonly.aof文件同步的频率
vm-enabled 是否开启虚拟内存支持
vm-swap-file 设置虚拟内存的交换文件路径
vm-max-memory 设置redis使用的最大物理内存大小
vm-page-size 设置虚拟内存的页大小
vm-pages 设置交换文件的总的page数量
vm-max-threads 设置VMIO同时使用的线程数量
Glueoutputbuf 设置在向客户端应答时,是否把较小的包合并为一个包发送,默认为开启
hash-max-zipmap-entries 设置hash的临界值
Activerehashing 重置hash,默认为开启