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. hdu-5596 GTW likes gt(模拟+优先队列)

    题目链接: GTW likes gt  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 131072/131072 K (Java/Othe ...

  2. ip策略路由

    ip route 只是基于目的地址的路由选择 ip rule 路由策略,控制路由选择,可根据源地址,源IP等进行路由选择   路由策略由选择符合操作组成 ip rule add   添加策略 ip r ...

  3. Python ip与数字的转换方式

    例子:IP:192.168.1.10 方法一: In [1]: bin(192)Out[1]: '0b11000000' In [2]: bin(168)Out[2]: '0b10101000' In ...

  4. UnicodeEncodeError: 'ascii' codec can't encode character u'\u5929' in position 2: ordinal not in range(128)

    UnicodeEncodeError: 'ascii' codec can't encode character u'\u5929' in position 2: ordinal not in ran ...

  5. python--numpy模块、spicy模块、 matplotlib模块

    一:numpy模块 ndarray:存储单一数据类型的多维数组 ufunc:能够对数组进行处理的函数(universal function object) #numpy 中arange用法,指定开始值 ...

  6. 安装openstack出现的问题及解决

    感谢http://www.cnblogs.com/nmap/p/6417163.html,参考这篇文章,我在虚拟机上部署成功了,后来因为虚拟机实在带不动,所以改装到物理机上,在实验室找到两台物理机,分 ...

  7. 1.13-1.14 Hive Action

    一.Hive Action 1.创建文件 [root@hadoop-senior oozie-apps]# pwd /opt/cdh-5.3.6/oozie-4.0.0-cdh5.3.6/oozie- ...

  8. 1-2关键字 & 2-1什么是变量

    2-1什么是变量 驼峰第一个字母首字母小写后面字母首字母大写 Pascal命名规范:

  9. python 内置函数的补充 isinstance,issubclass, hasattr ,getattr, setattr, delattr,str,del 用法,以及元类

    isinstance   是 python中的内置函数 , isinstance()用来判断一个函数是不是一个类型 issubclass  是python 中的内置函数,  用来一个类A是不是另外一个 ...

  10. fetch + async await 使用原生JS发送网络请求

    由于现在主流浏览器支持Fetch API,无需引用其他库就能实现AJAX,一行代码就搞定,可以说是非常方便了. export default { name: 'HelloWorld', data() ...