Redis简介

Redis是一个开源的key-value数据库,由C语言编写,对多种编程语言提供了支持。

Redis的特点

  • 是内存数据库,数据存储在内存中,性能极高
  • 支持数据的持久化,可以将内存中的数据持久化到硬盘

  • 支持数据备份,redis存储的数据有2份,一份在内存中,一份持久化到硬盘,会自动同步到硬盘

  • 支持hash,list,set,zset(sorted set)等多种数据结构
  • 支持事务,可使用MULTI、EXEC指令将多个操作包起来作为一个事务

  • 特性丰富,提供发布/订阅、通知、 key 过期等特性

redis常见的使用场景

  • 缓存数据库查询结果
  • 分布式系统的数据共享,比如session共享
  • 任务队列,比如存储秒杀、抢购、抢票等用户|订单队列
  • 数据过期处理,设置一个过期时间,到期自动删除该数据

Linux下安装Redis

1、安装gcc

redis需要自己编译,redis是c语言写的,所以需要安装c语言的编译器gcc。

先看下是否安装了gcc,没有安装就装上。

yum list --installed | grep gcc
yum install gcc

2、/usr/local下新建目录redis,将redis下载至该目录,解压,删除压缩包

mkdir /usr/local/redis
cd /usr/local/redis
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
tar -xzvf redis-5.0..tar.gz
rm redis-5.0..tar.gz

3、切换到解压目录下,编译

cd redis-5.0.
make

4、安装redis

make install PREFIX=/usr/local/redis

指定安装目录为/usr/local/redis 。安装完成后,redis/bin下有2个文件:redis-server、redis-cli。

redis-server是redis的服务器,即redis数据库;redis-cli是redis客户端,用来操作redis数据库。

解压的目录里的很多程序、配置文件后续还要使用,不能删除。


把redis作为服务,开机自启

redis下新建目录conf,把解压目录下的redis.conf复制到conf下;

redis下新建目录logs,logs下新建文件redis.log;

redis下新建目录data。

运行解压目录下的utils/install_server.sh

utils/install_server.sh

根据提示,选择路径:

其实只需指定配置文件、redis-server的路径即可,但默认的日志保存位置、redis-server数据保存位置东一个、西一个,不好记、用时不好找,

我们自己新建文件|目录,统一放在redis下。

检查一下设置,按Enter安装服务,如果路径写错了按Ctrl+C取消安装,从头开始即可。

安装好以后,看到/etc/init.d下生成了一个redis_6379脚本文件,Linux启动时会自动执行init.d下的脚本。

安装服务以后,默认自动开启redis-server,并且redis-server会开机自启。

和tomcat、redis不一样,tomcat、redis直接在/etc/rc.d/rc.local中写上路径即可开机自启,redis要指定的路径很多,需要单独用脚本来启动(指定路径)。

分析

install_server.sh的执行过程其实就是:

把utils/redis_init_script拷到/etc/init.d下,重命名为redis_$port,根据我们设置的端口号、路径来修改redis_init_script中对应的部分,

然后把redis添加为服务、将redis服务设置为开机启动。

redis_init_script是一个服务脚本,包含了启动、关闭redis-server的命令。

我们看一下redis_init_script的部分代码:

第一处是把redis添加为服务,第二处是把设置redis服务的开机启动(在/etc/rc.d下添加redis_$port脚本)。

设置的服务名是redis_${REDIS_PORT},端口号一般是6379,所以服务名一般是redis_6379,

看不顺眼的可以在安装服务前把里面的redis_${REDIS_PORT}全部替换为redis,这样服务名就是redis了。

所以也可以自己把utils/redis_init_script拷到/etc/init.d下,重命名这个文件,修改里面的配置,

然后chkconfig添加为服务、设置开启等级,

至于开机启动服务,可以把/etc/init.d下的服务脚本拷到/etc/rc.d/init.d下,开机会自动执行/etc/rc.d/init.d下的脚本;

或者在/etc/rc.d/rc.local中添加/etc/init.d下服务脚本的路径,开机会自动执行/etc/rc.d/rc.local中指定的脚本文件;

或者直接使用 chkconfig | systemctl 将服务设置为开机自启,都可以。


防火墙设置

Linux防火墙要开放6379端口,外部机器才能连接redis服务器。

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

需要重启防火墙才会生效,不然你看到显示success开启成功,但外部机器依然连不上。


指定Redis服务器的ip地址

编辑redis.conf:

vim conf/redis.conf

/bind 搜索关键字bind,将ip修改为Linux的ip地址:

注意是虚线下面的那个。

默认Redis服务器的ip是127.0.0.1,只能在Linux本地才能连接上,打开了防火墙的6379端口,外部也连不上。

需要修改为Linux的ip地址。

重启redis才会生效:

service redis_6379 restart

redis服务器启动|关闭的3种方式

1、前台启动

直接运行redis/bin下的redis-server,启动后终端的这个标签页不能再使用,需要新建一个标签页来操作。

Ctrl+C或直接关闭redis所在标签页,即可关闭redis服务器。

不方便,不推荐使用。

Ctrl+C可取消|停止Linux终端正在执行的命令,C即cancel。

2、后台启动

(1)修改redis.conf,将daemonize设置为yes

vim conf/redis.conf

一进去就是命令模式,/daemonize查找:

默认是no,将它改为yes,设置为守护进程,这样启动redis服务器时会后台启动,前台没有启动界面。

(2)启动redis服务器

./redis-server conf/redis.conf

就是执行bin下面的redis-server,传入配置文件的路径。

(3)关闭redis服务器

./redis-cli shutdown

通过redis客户端,向redis服务器发送关闭命令。

3、服务方式

方式一:

service redis_6379 start
service redis_6379 stop

方式二:

systemctl start redis_6379
systemctl stop redis_6379

每个人设置的服务名可能不一致,我的是redis_6379。

服务方式的好处:

  • 不必cd到指定目录
  • 我们安装服务时指定了配置文件的位置,所以也不必传入配置文件的路径

操作Redis服务器的2个工具

1、redis自带的客户端redis-cli

./redis-cli -h 192.168.1.7 -p 

-h指定redis服务器地址,-p指定redis服务器使用的端口号。缺省-h时默认为127.0.0.1,缺省-p时默认为未6379。

如果未修改redis.conf中绑定的ip,Linux上直接./redis-cli就可以连上,ip、port使用默认值即可;如果修改了redis.conf中绑定的ip,则用-h 127.0.0.1连不上,必须用绑定的ip才可以。

输入exit或quit即可退出redis客户端。

2、Redis Desktop Manager

下载安装Redis Desktop Manager,这个软件是收费的,Windows、MacOS、Linux的版本都有。

输入ip、端口号,redis服务器默认没有密码,不填验证。

先点击“测试连接”看能不能连上,能连上才点确定。

连接失败常见的原因:

  • 防火墙没打开6378端口,需重启防火墙才会生效
  • redis.conf没有绑定Linux的ip,需重启redis服务器才会生效

相比redis自带的客户端,Redis Desktop Manager可以统计数据、查看使用情况:

一般用redis-cli来操作数据库,用Redis Desktop Manager来查看、分析数据|使用情况。


Redis官方只提供了Linux版,微软自己搞了个山寨的Windows版,可以在github上下载,但基本没公司在实际中用。

Redis的下载安装的更多相关文章

  1. Redis学习笔记(2)——Redis的下载安装部署

    一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...

  2. CentOS7的安装以及redis的下载安装和连接redis desktop manager出现的问题

    因为需要在springboot下使用redis,所以打算在linux下使用redis,并且使用redis desktop manage来连接管理,但是一路上出现个种问题现在总结一下. 如何安装Cent ...

  3. Redis之下载安装及基本使用

    redis window系统的redis是微软团队根据官方的linux版本高仿的 官方原版: https://redis.io/ 中文官网:http://www.redis.cn 1.1 redis下 ...

  4. redis php扩展安装下载

    php的redis 扩展下载地址 Windows :http://windows.php.net/downloads/pecl/releases/redis/2.2.7/ 下载对应版本,一般有两个 n ...

  5. redis下载安装以及添加服务

    一.下载安装 从 github 下载:https://github.com/MSOpenTech/redis/releases 或者 https://github.com/ServiceStack/r ...

  6. redis入门(01)redis的下载和安装

    参考链接: 命令手册 : http://www.redis.net.cn/order/ 菜鸟教程: http://www.runoob.com/redis/redis-install.html 一.概 ...

  7. Redis安装教程及可视化工具RedisDesktopManager下载安装

    Redis安装教程: 1. Windows下安装教程: 下载:https://github.com/MSOpenTech/redis/releases Redis 支持 32 位和 64 位.这个需要 ...

  8. redis的下载与安装(linux版)

    redis的下载与安装(linux版) 1.下载路径 https://redis.io/download 2.上传到linux并且解压 3.进入解压之后的redis,并且make && ...

  9. Redis 下载 安装

    Redis 官网 https://redis.io/ github 主页 https://github.com/antirez/redis 下载页面 https://redis.io/download ...

随机推荐

  1. BZOJ_2002_[Hnoi2010]Bounce 弹飞绵羊_LCT

    BZOJ_2002_[Hnoi2010]Bounce 弹飞绵羊_LCT Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏. ...

  2. Relative atomic mass

    Relative atomic mass Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Oth ...

  3. C++之构造函数、参数列表、析构函数

    参考自:https://blog.csdn.net/sunSHINEEzy/article/details/78122485 构造函数之默认构造函数(调用的构造函数不用传递参数) 两种实例化方式都是默 ...

  4. bzoj1598

    K短路 和超级钢琴之类的差不多 先反图跑最短路,从原点向外拓展,每个点最多拓展k次,否则不可能是k短路 #include<bits/stdc++.h> using namespace st ...

  5. VMware桥接模式选择宿主机物理网卡

    当宿主机有多块物理网卡时,VMware桥接模式也要根据情况选择使用的物理网卡. 比如宿主机有两块物理网卡,一个连外网,一个连内网,如果想与内网组成局域网就需要选择宿主机的内网网卡,反之选择外网网卡,当 ...

  6. [hdu1277]全文检索(AC自动机)

    解题关键:AC自动机模板题,注意字符匹配时若无法匹配,直接用%s即可. #include<bits/stdc++.h> using namespace std; typedef long ...

  7. 清理win10系统c盘

    本人C盘是128G SSD硬盘,Win10系统盘和一些常用的程序都装在这个盘(特大程序除外),目的是为了使用这些程序时提高响应速度.但是本人电脑使用1年,突然发现C盘以占用近70G的空间,实在是吓蒙撒 ...

  8. Flutter实战视频-移动电商-12.首页_GridView类别导航制作

    12.首页_GridView类别导航制作 首页导航区的制作 外面用一个gridview来写.里面单独提出来 新建导航组件 还是在home_page.dart里面写代码 新建一个静态的组件: 快捷键写组 ...

  9. HTML5资料整理 [From luics]

    来自http://www.cnblogs.com/luics/,新浪微博@徐凯-鬼道 HTML5资料整理   项目组要做html5这块,花了一周左右时间收集的,快有一年时间了,部分内容需要更新,仅供参 ...

  10. HDU - 2181 哈密顿绕行世界问题 dfs图的遍历

    哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...