最近写东西用到Redis,于是学习相关内容。本文主要内容包括:CentOS7下Redis的安装,CentOS与Windows中的PHPRedis安装使用,RedisDesktopManager使用。

Redis安装

Linux下载安装老生常谈了

在make的时候会遇到一些问题,其中有我遇到的也有在找资料的过程中看到的,一并放在这里。

1

make[2]: cc: Command not found

异常原因:没有安装gcc

解决方案:yum install gcc-c++

2

zmalloc.h:51:31: error: jemalloc/jemalloc.h: No such file or directory

异常原因:一些编译依赖或原来编译遗留出现的问题

解决方案:make distclean。清理一下,然后再make。

(来自nick’s blog

 

其实上面两个我都没遇到……接着make test。我遇到了如下的错误:

couldn't execute "tclsh8.5": no such file or directory

异常原因:没有安装tcl

解决方案:yum update tcl 或者 yum install tcl。(总之就是安上tcl)

接下来可以使用make install。也可以自己拷贝可执行文件到喜欢的文件夹。

 

Redis由四个可执行文件:redis-benchmarkredis-cliredis-serverredis-stat 这四个可执行文件,加上一个Redis配置文件(redis.conf 也可以叫其他名)就构成了整个redis的最终可用包。四个文件分别是:

  • redis-server:Redis服务器的daemon启动程序
  • redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作
  • redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
  • redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况

我将这四个文件放到了/usr/local/bin/,以便执行。

接下来新建文件夹用来管理Redis配置文件以及日志文件等。根据自己情况放配置文件。

在redis解压根目录中找到配置文件模板,复制到如下位置。

Redis配置

Redis配置文件主要参数如下:(来自cnblogs shanyou

  • daemonize:是否以后台daemon方式运行
  • pidfile:pid文件位置
  • port:监听的端口号
  • timeout:请求超时时间
  • loglevel:log信息级别
  • logfile:log文件位置
  • databases:开启数据库的数量
  • save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
  • rdbcompression:是否使用压缩
  • dbfilename:数据快照文件名(只是文件名,不包括目录)
  • dir:数据快照的保存目录(这个是目录)
  • appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
  • appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)

修改pidfile、logfile、dir目录为上面我们新建的目录。

运行Redis:

注意:1、daemonize是是否以后台daemon方式运行Redis,要将此值设置为yes,才能在后台运行Redis。2、redis运行开始时绑定ip,也就是说需要在运行redis前连上网络。

使用redis命令行工具连接Redis来测试启动是否成功:

phpredis安装

Windows下

刚开始没找到dll文件,下了phpredis源代码,自己在windows下编译,结果搞了一天都没成功又发现了现成的dll文件,下载地址:

http://pecl.php.net/package/redis/2.2.7/windows

这里根据php版本下载响应的dll放到php扩展文件夹,修改php.ini就可以了。这里是2.2.7版本的phpredis,其他版本返回上一层自己找找吧。

Linux下

PS:我是在阿里云CentOS服务器安装。

下载phpredis源代码。进入代码目录。

注意第二步不能使用php/etc文件夹下面的php.ini

 

install完成后根据提示在php/extensions/nodubug-non-zts-xxxxxxxx文件夹下面找到so文件。拷贝到php当前配置的扩展文件夹下。

在php.ini中添加一行 extension = redis.so

在php中编写使用Reids的代码测试上面的Redis和phpredis安装是否成功。

Redis Desktop Manager

Redis服务器的管理程序。官网

下载地址:http://redisdesktop.com/download

根据不同平台下载响应版本。

连接虚拟机中的Redis

因为在本地写代码用到虚拟机中的Redis,其中遇到了一些问题,也在下面列出。

我是用的是Virtual Box,安装CentOS7 。

启动CentOS,设置网络为“仅主机(Host-Only)网络”,此时宿主机和虚拟机通过虚拟网卡(VirtualBox Host-Only Ethernet Adapter)建立了一个局域网,宿主机为网关。

在宿主机和虚拟机分别查看ip,我的windowsIP为169.254.51.101,CentOS IP为169.254.51.102。

这时候就是使用这个IP连接Redis服务器。但是在这之前还需要配置Redis:找到配置文件中这一句

取消注释。bind参数在配置文件中的说明是这样的:

默认情况下,Redis监听所有网络接口的服务器上可用的连接。使用“bind”的配置指令,跟上一个或多个地址的地址,可以只监听一个或多个接口。

默认所有本机IP都能访问连接,设置bind就只有绑定的ip能连接redis。这一句修改为:

此时测试我windows上的Manager是可以连接了。

如果还连接不上,有可能是linux端口未开放的问题。开放Redis的端口:

CentOS7之前的CentOS版本中使用如下命令:

此时还没有真正保存,重启之后会失效,还需要用下面的命令进行保存:(<CentOS7)

该命令会将6379端口规则写入 /etc/sysconfig/iptables 文件中,而不是临时的,重启之后也不会消失,至此虚拟机上面开启redis端口的工作就完成了。

以上命令是CentOS7之前的版本中使用,在RHEL7和CentOS7中使用了新的防火墙来代替iptable,所以上述命令不可用,详细查看这篇文章:CentOS7的新防火墙firewalld

—-EOF—-

评论

电子邮件地址不会被公开。 必填项已用*标注

你可以使用以下 HTML 标签和属性:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">