redis是一个key-value存储系统。和Memcached类似,它
支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持
push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。
与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,
并且在此基础上实现了master-slave(主从)同步。Redis 是一个高性能的key-value数据库。
redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。
1、安装前环境说明
楼主使用的是CentOS 6.5版本的Linux系统,IP为192.168.0.100。虚拟机工具使用的是VirtualBox。
2、下载Redis
Redis可以到官方网站上面进行下载:http://www.redis.io/download,现在最新的稳定版已经到2.8了。
这里使用的是redis-2.8.8.tar.gz。
3、安装步骤
下载redis-2.8.8.tar.gz使用ftp上传到linux系统的/opt目录下。
1)解压
进入linux系统的/opt目录下,执行如下命令进行解压:tar -zxvf redis-2.8.8.tar.gz。
解压之后会在当前目录下多出redis-2.8.8的文件夹,为了方便,我们将其改名:mv redis-2.8.8 redis。
解压之后Redis的目录结构如下图所示:
2)编译与安装
进入Redis目录下的src目录下,执行make命令来编译Redis。当 楼主执行编译命令的时候,编译失败了,报了“/bin/sh: cc: command not found”的错误。原来是楼主的linux系统木有装gcc,而Redis是C实现的,所以需要gcc来进行编译。在网上搜索之后,发现一篇帖子,按照 帖子上面的步骤解决了楼主的问题,在此表示感谢!下面附上该帖子的连接:http://xueliang1yi.blog.163.com/blog/static/1145570162012102114635764/,有遇到该问题的朋友可以参考一下。
安装完gcc之后,依次执行如下命令即可完成Redis的安装:
make
make test //检查一下 看有没有问题
make install
安装完之后,会在src目录下生成几个可执行文件,分别是 mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-server。其中redis-server是启动Redis服务的,redis-cli是进入Redis客户端的。
3)配置
在Redis的根目录下面有一个配置文件redis.conf,该配置文件可以对Redis进行基本的配置,配置参数可以查看《Redis配置参数说明》。楼主最开始只是简单的将daemonize参数设置为yes,目的是将Redis服务设置为后台开启,这样服务开启后就不会占用当前session了。
4、测试
安装完之后,我们来对其进行测试。
首先,为了方便起见,我们将src下的可执行命令全部移动到/usr /local/redis/bin/目录下,执行该命令:mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-server /usr/local/redis/bin,然后将配置文件移动到/usr/local/redis/etc/目录下,执行该命令:mv redis.conf /usr/local/redis/etc/。
进入/usr/local/redis/bin/目录下执行./redis-server /usr/local/redis/etc/redis.conf命令开启Redis服务。注意:开启redis服务需要指定配置文件,如不指定配置文件则加载默认配置文件。
开启之后我们执行netstat -tunpl | grep 6379命令来查看6379端口使用情况,如果出现下图情况,则说明6379端口已经被redis-server占用了,表示redis服务已经成功启动。
然后执行./redis-cli进入redis客户端,然后进行简单的set、get操作来测试一下。
好,到此Redis已经成功安装了。
Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。下面楼主简单的进行一下配置。
1、上面安装好的一个Redis作为master,然后使用VirtualBox的虚拟机克隆功能将刚刚那个linux系统克隆一份作为slave,并修改其IP为192.168.0.110。
2、修改slave的redis配置文件:
slaveof 192.168.0.100 6379 (映射到主服务器上)
如果master设置了验证密码,还需配置masterauth。楼主的master设置了验证密码为admin,所以配置masterauth admin。
配置完之后启动slave的Redis服务,OK,主从配置完成。下面测试一下:
在master和slave分别执行info命令,查看结果如下:
master:
slave:
然后在master执行set age 24
在slave执行get age,看是否能得到24,如果能够得到值则说明配置成功。