LInux下进行redis的安装和配置(开启远程连接)

1. 什么是redis?

1.1 核心概念

Redis是用C语言开发的高性能的键值对存储的非关系数据库。Redis存储的数据类型有以下几种:字符(String)、散列(Hash)、列表(List)、集合(Set)、有序集合(ZSet)

1.2 历史发展

2008年,意大利的一家创业公司Merzia推出了一款基于MySQL的网站实时统计系统LLOOGG,然而没过多久该公司的创始人 Salvatore Sanfilippo便对MySQL的性能感到失望,于是他决定亲自为LLOOGG量身定做一个数据库,并于2009年开发完成,这个数据库就是Redis。 不过Salvatore Sanfilippo并不满足只将Redis用于LLOOGG这一款产品,而是希望更多的人使用它,于是在同一年Salvatore Sanfilippo将Redis开源发布,并开始和Redis的另一名主要的代码贡献者Pieter Noordhuis一起继续着Redis的开发,直到今天。

  SalvatoreSanfilippo自己也没有想到,短短的几年时间,Redis就拥有了庞大的用户群体。HackerNews在2012年发布了一份数据库的使用情况调查,结果显示有近12%的公司在使用Redis。国内如新浪微博、街旁网、知乎网,国外如GitHub、Stack Overflow、Flickr等都是Redis的用户。

  VMware公司从2010年开始赞助Redis的开发, Salvatore Sanfilippo和Pieter Noordhuis也分别在3月和5月加入VMware,全职开发Redis。

1.3 redis的应用场景

缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)

分布式集群架构中的session分离。

聊天室的在线好友列表。

任务队列。(秒杀、抢购、12306等等)

应用排行榜。

网站访问统计。

数据过期处理(可以精确到毫秒)

2.redis在linux下的安装

2.1 安装

#安装C语言环境(已经安装可跳过)

yum install gcc-c++

#下载压缩包

wget http://download.redis.io/releases/redis-4.0.1.tar.gz

#解压

tar -zxvf redis-4.0.1.tar.gz

#进入解压目录并编译Redis

cd redis-4.0.1

#进行编译

make

#安装Redis

make install PREFIX=/usr/local/redis

PREFIX后面的/usr/local/redis是安装路径,我们启动redis的文件都在这里,也可以自定义。

出现如下提示则安装成功:

make[1]: Entering directory `/root/redis-3.0.6/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 `/root/redis-3.0.6/src

2.2拷贝配置文件并运行

接下把我们的配置文件redis.conf手动拷贝到安装路径,,以便开启后台运行与远程访问。

#拷贝redis.conf文件

cp -r redis.conf /usr/local/redis/bin/

安装路径下的bin目录结构

cd /usr/local/redis/bin/

好了 现在我们可以输入命令来运行redis了

#开启服务端

./redis-server redis.conf

成功提示如下


#开启新的窗口,运行客户端进行连接

cd /usr/redis/

#链接此redis

./redis-cli  或者  ./redis-cli -h 127.0.0.1 -p 6379

-h:指定主机IP

-p:指定主机端口

默认主机IP是127.0.0.1 默认端口 6379

不填则使用默认值

成功并进行如下测试


但不可能每次都开两个窗口,我们需要配置后台运行;同时我们用程序连接也需要远程连接,接下来我们进行设置。

2.3 设置后台运行和远程连接

接下里我们在配置文件redis.conf中进行相关的配置

#打开配置文件

vim redis.conf

在vim编辑模式下,输入行数+gg可以快捷跳行。例如跳到第138行,输入:138gg

2.3.1 设置后台启动

将第138行的daemonize no修改为daemonize yes即可


2.3.2 开启远程访问

将第70行的bind注释,第90行将protected-mode改为no


2.3.3 设置密码

取消第502行的注释,并修改密码


关于密码,设不设置密码使用上是没有什么区别的,记录一下怎么设置密码以及保护模式:

在redis.conf中将requirepass foobared注释去掉,并将foobared改为自己想设置的密码

注意:设置了密码,建议就将protected-mode no改为protected-mode yes,即有密码的情况下,打开保护模式

接下来重启redis:

#首先查询到redis的pid后,kill掉,然后重启

[root@localhost bin]# ps -ef|grep redis

root      20940      1  0 12:12 ?        00:00:18 ./redis-server *:6379

[root@localhost bin]# kill 20940

[root@localhost bin]# ./redis-server redis.conf

后台启动成功如下

最后我们使用redis客户端通过密码远程连接:

#远程连接

./redis-cli -h 你服务器的ip -p 6379 -a 你的密码


2.3.4 开放6379端口

由于防火墙的原因,需要打开6379端口防火墙,才能远程访问:

执行命令打开6379端口防火墙,看到success字样就表明添加成功

firewall-cmd --zone=public --add-port=6379/tcp --permanent

然后重新启动防火墙,看到success字样就表明重启成功

firewall-cmd --reload

最后可以输入命令验证6379端口打开是否生效,看到yes及表示生效

firewall-cmd --zone=public --query-port=6379/tcp

在开放防火墙端口时,如果出现“FirewallD is not running”,说明防火墙就没打开,

通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。

通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。

再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。

如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。

再次执行开放端口命令。

好啦,我们所有的配置就到这结束了;虽然不输入密码也能登陆,但是无法进行get set操作;剩下的就是同学们自己去尝试啦。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容