一、简介
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis是一个高性能的key-value数据库。redis的出现,很大程度弥补了memcached这类key-value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,Go, PHP客户端,使用很方便。
二、安装前准备
1.必需的编译工具:
1.1 检查编译工具 gcc 和 gcc-c++ 是否已安装,参考命令:
# rpm -qa | grep gcc
# rpm -qa | grep gcc-c++
如果没有安装,推荐yum安装,参考命令:
# yum install -y gcc gcc-c++
1.2 安装或升级编译工具 gcc44 、 gcc44-c++ 、 libstdc++44-devel 或更高版本:
# rpm -qa | grep "gcc*"
# rpm -qa | grep "libstdc++*"
如果没有安装,推荐yum安装(确保gcc gcc-c++安装v4.4版本以上),参考命令:
# yum install -y gcc gcc-c++
# yum install -y gcc44 gcc44-c++ //注:如果gcc gcc-c++安装v4.4版本以上此步可跳过
# yum install -y libstdc++44-devel //注:如果libstdc++-devel安装v4.4版本以上此步可跳过
2.自redis-2.6以上版本要求编译工具tcl更高的版本,建议下载安装最新版的tcl编译工具,免得redis编译时报错
【SQLite数据库安装时也需tcl软件支持,如果已经安装,此步骤请跳过~~~~】
tcl是tool command language的缩写,tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以解释运行,通过使用 tcl 这款含有数百预编译模块的程序,缩短编译您自己的 Tcl/Tk 模块的所需时间。
下载地址:http://www.linuxfromscratch.org/blfs/view/cvs/general/tcl.html
按官方指导的方法安装:
# tar -zxvf tcl8.6.0-src.tar.gz
# cd tcl8.6.0/unix/
# ./configure --prefix=/usr --without-tzdata --mandir=/usr/share/man $([ $(uname -m) = x86_64 ] && echo --enable-64bit)
# make
# sed -e "s@^(TCL_SRC_DIR=').*@1/usr/include'@" -e "/TCL_B/s@='(-L)?.*unix@='1/usr/lib@" -i tclConfig.sh
# make install
# make install-private-headers && ln -v -sf tclsh8.6 /usr/bin/tclsh && chmod -v 755 /usr/lib/libtcl8.6.so
可以查看一下它指向的软链接文件情况,如果tclsh -> tclsh8.6应该就没问题了,如下:
# ll /usr/bin/ | grep tcl
lrwxrwxrwx 1 root root 8 11-17 22:51 tclsh -> tclsh8.6
三、安装Redis
1.执行安装
在 CentOS 6.x 以下版本,由于gcc/g++版本过低,需要设置一下环境变量使之在当前会话立即生效(如果下面编译时有报错的话),参考命令:
# export CC=/usr/bin/gcc44
# export CXX=/usr/bin/g++44
编译安装Redis(Redis省略了configure这步,默认安装到 /usr/local/bin/ 目录中)
# tar -zxvf redis-2.8.3.tar.gz && cd redis-2.8.3
# make
# make install
至此,Redis安装完成,共生成5个可执行文件,默认安装到 /usr/local/bin/ 目录中,分别是:
redis-benchmark # 性能测试程序,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 apache 的 ab 工具)
redis-check-aof # 更新快照程序
redis-check-dump # 本地数据库持久化程序
redis-cli # 客户端连接程序
redis-server # 服务器启动程序
2.规划我的redis放置目录(/usr/local/redis):
2.1 创建一个配置文件存放目录:
# mkdir -p /usr/local/redis/etc
2.2 创建一个可执行程序存放目录:
# mkdir -p /usr/local/redis/bin
2.3 创建一个数据库快照、aof存放目录:
# mkdir -p /usr/local/redis/dbbak
2.4 创建一个日志存放目录:
# mkdir -p /usr/local/redis/logs
3.将配置文件、可执行文件拷贝到我的redis规划目录
3.1 拷贝配置文件:将redis源码包中的 redis.conf 文件拷贝到 /usr/local/redis/etc/
# cp redis.conf /usr/local/redis/etc/BAK.redis.conf
# cp redis.conf /usr/local/redis/etc/redis.conf
3.2 剪切程序文件:将 /usr/local/bin/ 目录下的几个程序文件移动到规划好的 /usr/local/redis/bin/ 目录中
# mv -v /usr/local/bin/redis-* /usr/local/redis/bin/
3.3 修改配置文件:使之以守护进程的方式启动
# vi /usr/local/redis/etc/redis.conf
在约17行将 daemonize no 改为 daemonize yes
4.启动redis服务,同时加载指定配置文件redis.conf
# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
查看端口侦听情况(默认侦听6379端口):
# netstat -tunpl | grep 6379
查看进程启动情况
# ps -ef | grep redis
5.redis客户端登录
# /usr/local/redis/bin/redis-cli
redis 127.0.0.1:6379> info
redis 127.0.0.1:6379> exit 或 quit 或 ctrl+c
6.停止redis服务
# /usr/local/redis/bin/redis-cli shutdown
# pkill redis-server
7.设置redis随系统自启动(用vi编辑 /etc/rc.d/rc.local 添加也可):
# echo "# Redis随系统自启动:" >> /etc/rc.d/rc.local
# echo "/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf" >> /etc/rc.d/rc.local