CentOS下安装Redis
Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。
Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。
1.安装tcl支持(可以不安装,这个是在安装好redis后进行test使用的,如果是生产环境可以安装)
$yum install tcl
安装gcc,不然make的时候会报错(redis是c语言编写的,需要使用gcc对源代码进行编译)
make[3]: gcc:命令未找到,//没有安装gcc [root@winner ~]# yum install -y gcc g++ gcc-c++ make [root@winner ~]# gcc -v
2.安装redis
[root@winner 桌面]# wget http://download.redis.io/releases/redis-3.0.5.tar.gz 下载下来以后在桌面,可以拷贝到/usr/local中
[root@winner local]# tar zxf redis-3.0.5.tar.gz [root@winner local]# cd redis-3.0.5 [root@winner redis-3.0.5]$ make
若出现错误:
zmalloc.h:50:31: 错误:jemalloc/jemalloc.h:没有那个文件或目录 zmalloc.h:55:2: 错误:#error "Newer version of jemalloc required" make[1]: *** [adlist.o] 错误 1 make[1]: Leaving directory `/home/winner/桌面/redis-3.0.5/src' make: *** [all] 错误 2
解决办法是:
make MALLOC=libc [winner@winner redis-3.0.5]$ make MALLOC=libc Hint: It's a good idea to run 'make test' ;) make[1]: Leaving directory `/usr/local/redis-3.0.5/src'
安装(make安装完成后必须make install 才可以正常安装成功)
[root@winner redis-3.0.5]# make install
cd src && make install make[1]: Entering directory `/usr/local/redis-3.0.5/src' Hint: It's a good idea to run 'make test' ;) INSTALL install INSTALL install INSTALL install INSTALL install INSTALL install make[1]: Leaving directory `/usr/local/redis-3.0.5/src'
[root@winner redis-3.0.5]#cp redis.conf /etc/
测试通过后安装,安装后会自动把redis-server,redis-cli,redis-benchmark,redis-check-aof,redis-check-dump复制到/usr/local/bin目录下。
参数介绍:
make install命令执行完成后,会在/usr/local/bin目录下生成几个可执行文件,分别是redis-server、redis-cli、 redis-benchmark、redis-check-aof 、redis-check-dump,它们的作用如下:
redis-server:Redis服务器的daemon启动程序 redis-cli:Redis命令行操作工具。也可以用telnet根据其纯文本协议来操作 redis-benchmark:Redis性能测试工具,测试Redis在当前系统下的读写性能 redis-check-aof:数据修复 redis-check-dump:检查导出工具
修改redis配置文件,redis配置文件是redis-server启动时候使用的(redis-server redis.conf 启动redis服务)
redis.conf参数介绍:
daemonize:是否以后台daemon方式运行 pidfile:pid文件位置 port:监听的端口号 timeout:请求超时时间 loglevel:log信息级别 logfile:log文件位置 databases:开启数据库的数量 save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。 rdbcompression:是否使用压缩 dbfilename:数据快照文件名(只是文件名,不包括目录) dir:数据快照的保存目录(这个是目录) appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。 appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)
设置开机自动启动服务
sudo chkconfig redis on
4. 启动redis
[root@winner etc]# cd /usr/local/bin
[root@winner bin]# ./redis-server /etc/redis.conf
5. 检查是否启动成功(查看redis服务是否已经启动)
[root@winner 桌面]# ps -ef | grep redis root 6121 1 0 19:37 ? 00:00:02 ./redis-server *:6379 root 6433 6422 0 19:58 pts/1 00:00:00 grep redis
6.客户端登录
[root@winner bin]# ./redis-cli -h 127.0.0.1 -p 6379 127.0.0.1:6379>
配置防火墙打开对应的端口:
$vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
重启防火墙
$service iptables restart
测试:
127.0.0.1:6379> set test "hello" OK 127.0.0.1:6379> get test "hello"
关闭Redis:
[root@winner bin]# ./redis-cli -h 127.0.0.1 -p 6379 shutdown