redis详解

本文详细介绍了redis数据库的分类、应用场景、优缺点、安装过程(包括Windows和Linux环境)、连接方式、常用命令、数据类型(如字符串、哈希、列表、集合、有序集合)、发布订阅功能、事务机制、持久化策略(RDB和AOF)、主从复制及其容灾处理,全面阐述了redis的使用和管理。
摘要由CSDN通过智能技术生成

目录

一、认识redis

1)数据库分类

2)redis应用场景

1.架构演变

2.为什么要用redis做缓存数据库

3)redis优点和缺点

 二、安装

1)windows下安装redis3.0.502

1.下载安装

2.设置redis开机自启动

3.redis服务的管理(关闭和开启)

4.配置环境变量

2)linux下安装redis.3.0.0

第一步:解压

第二步:安装gcc编译器

第三步:编译redis源码并安装

第四步:防火墙开放redis端口

第五步:启动redis

第六步:设置redis开机自启动

第七步:redis服务的管理(关闭和开启)

第八步:解除远程访问限制

三、连接redis

1)使用自带的客户端(redis-cli)

2)使用图形界面客户端(redis desk-top manager)

三、redis常用命令

1)可以先查看参考文档

2)操作数据库

3)检测连接状态

4)查看redis信息

5)修改redis默认端口

6)操作key命令

1.查看当前数据库key个数

2.插入数据

3.操作key

四、redis中value的数据类型

0)常见的value数据类型

1)字符串string

操作命令

get、set【获取、插入、修改】

mget、mset【批量获取、插入】

incr和incrby、decr和decrby【自增、自减】

append【value追加】

strlen【查询value长度】

更多【查看手册】

2)哈希hash

hset和hmset插入、hget和hmget和hgetall【获取、插入】

hdel【删除某一对value中属性对】

hlen【获取value中属性对的个数】

hkeys、hvals【获取value中所有属性对的key或value】

hexists【判断value中属性对是否存在】

更多【查看手册】

3)列表list

lpush、rpush、linsert、lset【插入、修改】

lindex、lrange【获取】

lpop、rpop、lrem【移除】

llen【查询list元素个数】

更多【查看手册】

4)集合set

sadd【插入】

srem、spop【删除】

sismember【判断存在】

sinter、sdiff、sunion【求交、差、并集】

5)有序集合zset(sortedSet)

四、redis的发布订阅

1)定义

2)订阅发布模式分类

1.一个发布者,多个订阅者

2.多个发布者,一个订阅者

3.多个发布者,多个订阅者

五、事务

1)事务机制

2)命令

六、持久化

1)为什么要持久化

2)redis的持久化机制

1.rdb方式(全量备份)

2.aof方式(增量备份)

3.两种方式区别

七、主从复制

1)主从复制相关概念

2)和mysql主从复制的区别

3)开始配置redis主从复制

1.slave端

2.master端

4)redis主从复制时报错及解决办法

八、redis主从复制的容灾

1)手动容灾(即手动故障转移)

1.原理

2.操作步骤

2)自动容灾(哨兵模式)

1.原理

2.部署哨兵


一、认识redis

1)数据库分类

关系型数据库


mysql、oracle、sqlserver

非关系型数据库(nosql)


  • 键值对k-v存储类(用于缓存):redis、memcache
  • 文档类(用于web应用):mongodb
  • 全文检索类(用于搜索引擎):solr、elasticsearch
  • 列存储(用于分布式海量存储):hive、时序数据库TSDB
  • 图形类(用于社交网络):neo4j

2)redis应用场景

1.架构演变

db636b28bb6941d8acff261f942c9432.png

 637f646f9081474ea539c95732723e30.png

 59d6d207320a446d8c55a0564371a5ae.png

150c507f7aaa4feea819fcad0b9b9f3e.png

2.为什么要用redis做缓存数据库

redis读写都使用内存,很快;

mysql、oracle、sqlserver这些关系型数据库读写都使用磁盘,开销大很慢。

3)redis优点和缺点

优点:


增删改字段相对关系型数据库更方便;

使用内存读写,更快;

缺点:


数据之间是无关联,没有约束;
不支持标准的 SQL,也没有nosql标准;
没有索引,只支持简单的事务;
没有丰富的数据类型(数值、日期、字符、二进制,、大文本等)

 二、安装

演示版本下载地址:

redis3.0.502-win-x64和x84-Redis文档类资源-CSDN下载

redis3.0.0-linux-Redis文档类资源-CSDN下载

也可以去官方网站下载其他版本:

  • Linux版本下载地址

http://redis.io/

  • windows版本下载地址

win-3.2.100及更早的版本

Tags · microsoftarchive/redis · GitHub


v5.0.14.1及更早的版本

Tags · tporadowski/redis · GitHub

1)windows下安装redis3.0.502

1.下载安装

下载文件解压出来有以下文件

d3cf91b696fb46b092b04210db8dfba0.png

 双击redis-server.exe启动redis服务端,按contrl+c退出

##在windows10下可能会启动报错,解决办法:

进入cmd在当前路径下执行:redis-server.exe redis.conf

双击redis-cli.exe启动redis客户端‘’

2.设置redis开机自启动

(1)注册Redis开机启动服务

通过 CMD 命令行工具进入 Redis 安装目录,执行以下命令:

redis-server.exe --service-install redis.windows.conf --loglevel verbose


##启动报错,需要先修改redis.windows.conf,再启动:

dir "E:\\redis3.0.0"     --dir后面路径为redis安装路径

(2)设置服务开机自启

进入windows服务,找到redis的服务,右键,设置为自动。然后启动。

3.redis服务的管理(关闭和开启)

##注意:要先配置环境变量,否则执行会报错

停止服务: redis-server --service-stop

启动服务: redis-server --service-start

4.配置环境变量

  • 为什么要配置环境变量?

把redis安装目录加入到环境变量后,进入cmd直接输入redis-cli就可以进入客户端,就不用进到安装目录再输入redis-cli了

  • 配置方法:

在path中添加:D:\redis-3.0-0;   //即redis的安装目录

2)linux下安装redis.3.0.0

第一步:解压

解压出来是源码
tar -zxf redis-3.0.0.tar.gz

第二步:安装gcc编译器

因为redis用的c语言编写的,源码安装时,编译需要gcc编译器
redhat类linux安装gcc:
yum install gcc-c++
debian类linux安装gcc:
sudo apt-get update
sudo apt-get install gcc

第三步:编译redis源码并安装

cd redis-3.0.0  //进入解压出来的源码所在文件夹
make    //开始源码编译
make install PREFIX=/steven/home/redis  //安装redis(PREFIX后面的路径指安装到哪儿)

如果遇到执行make命令下面的报错:

18ad4ec3ed1f4b8da84eb9033694bfb4.png

 解决办法:

将源换成外国系统源卸载gcc,重新安装gcc编译

1.  apt remove gcc  //卸载gcc

2.  cd /etc/apt   --修改sources.list   //换成外国的源http://archive.ubuntu.com/ubuntu 

3. apt-get update   //更新源

3.  apt install gcc  //重新安装gcc编译器

4.rm -rf redis-3.0.0  //删除原来解压的redis源码包

tar -zxf redis-3.0.0.tar.gz  //重新解压

第四步:防火墙开放redis端口

sudo ufw allow 6379/tcp  //redis端口默认是6379

第五步:启动redis

(1)测试启动关闭服务端

cd bin

./redis-server  //测试启动服务端(默认以前台方式启动)

按ctrl+c退出


shutdown    //关闭服务端

(2)设置默认以守护进程方式启动

redis.conf在源码安装包,拷贝到安装文件夹/home/steven/redis中(和bin并列) ;


vim /home/steven/redis/redis.conf   

修改redis.conf,将daemonize由no改为yes;


sudo ./redis-server ../redis.conf //启动服务端(注意:前面一定要加sudo以管理员权限启动,不然主从复制时会报错)

ps -ef |grep redis  //查看是否启动成功了


停止redis服务端:

kill -9  redis的进程pid

(3)启动客护端

./redis-cli   //测试启动客户端

第六步:设置redis开机自启动

1.拷贝redis_init_script文件

解压的安装包下的有util文件夹,复制里面的redis_init_script到/etc/init.d目录下,然后重命名为redis

sudo cp redis_init_script /etc/init.d/redis

2.编辑

cd /etc/init.d

sudo vim redis


##/home/steven/redis3.0.0为redis安装文件夹路径

EXEC=/home/steven/redis3.0.0/bin/redis-server #改为redis-server文件所在路径

CLIEXEC=/home/steven/redis3.0.0/bin/redis-cli #改为/redis-cli文件所在路径

PIDFILE=/var/run/redis_${REDISPORT}.pid

CONF="/home/steven/redis3.0.0/redis.conf" #改为/redis.conf文件所在路径

3.然后执行

sudo chmod +x /etc/init.d/redis --取得权限

sudo update-rc.d redis defaults --加载到系统自启动文件

第七步:redis服务的管理(关闭和开启)

启动redis服务:

cd redis安装目录/bin

sudo ./redis-server "../redis.conf" //启动服务端(注意:前面一定要加sudo以管理员权限启动,不然主从复制时会报错;../redis.conf最好用引号引起来,否则有可能编译器识别不了路径)

ps -ef |grep redis  //查看是否启动成功了


停止redis服务:

kill -9  redis的进程pid

第八步:解除远程访问限制

如下修改服务器上redis.conf的配置,外部网络才可以访问得到服务器上的redis:

  • Redis3.2之前的版本:

把bind:127.0.0.1语句注释掉


  • Redis3.2版本及其以后:

redis3.2版本新增protected-mode配置,需要关闭protected-mode模式,方法如下:

把protected-mode值设为no,然后再把bind:127.0.0.1语句注释掉

三、连接redis

1)使用自带的客户端(redis-cli)

../redis-cli -h IP地址 -p 端口    //redis端口默认是6379

2)使用图形界面客户端(redis desk-top manager)

有windows版本,也有Linux版本的。

打开,开始开始连接:

6edf18e8daaf4aefa977e173cf7c4e9c.png

三、redis常用命令

1)可以先查看参考文档

redis命令参考文档:Redis 命令参考 — Redis 命令参考

2)操作数据库

1.默认数据库

redis 默认有 16 个数据库。

默认自动使用 0 号数据库,数据库的名字就叫0,可在 redis.conf 文件配置默认哪个


2.切换当前使用库

select 数据库名 //比如切换到2这个数据库,就select 2


3.清空数据库所有数据

flushall   //所有库

fulshdb  //当前库

3)检测连接状态

ping    //连接服务器状态正常,返回pong

4)查看r

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值