IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis数据库 -> 正文阅读

[大数据]Redis数据库

Redis数据库

Nosql

image-20210929184429452

早年的MyISAM和InnoDB

image-20210929184740764

什么是Nosql

image-20210929185844483

Nsql的特点

image-20210929190409869 image-20210929190518216 image-20210929190703742

阿里巴巴演技分析

Nsql的四大分类

image-20210929191938949 image-20210929192133145 image-20210929192154815

Redis概述

Redis是什么

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MwBAduMb-1633014442184)(https://cdn.jsdelivr.net/gh/hjx279534/myRepo/img/202109301934265.png)]

Redis可以干嘛

image-20210929192638698 image-20210929192915819 image-20210929192954252

Redis安装

image-20210929193045542

使用redis客户端连接服务

image-20210929193334880

简单使用

image-20210929193407251

Ubunto安装gcc-c++

image-20210929205941111

Linux上安装Redis

image-20210929194729694

image-20210929194757212

image-20210929195123474 image-20210929195247597 image-20210929195524123 image-20210929195705442

启动redis服务

image-20210929195931179

测试连接

image-20210929200052863

关闭redis

image-20210929200125449

使用docker安装redis

1.使用docker下载redis

 docker pull redis:latest

2.查看是否成功安装了redis镜像

docker images

3.运行容器(相当windows中启动redis服务)

 docker run -itd --name redis-test -p 6379:6379 redis  

4.通过docker ps命令查看容器是否启动成功

5.进入容器

# 注意末尾要加 /bin/bash  --shell 的运行环境
docker exec -it redis-test /bin/bash

6.测试连接是否成功(注意:连接的时候记得打开另外一个窗口连接)

命令:redis-cli

image-20210929231737813

关闭redis

使用命令shutdown

Linux运行C语言

1.编译:

a.out 为编译后输出的文件

image-20210929211527168

2.运行

输入 ./a.out 即可。

Redis相关命令

列表List命令

image-20210929233232291
LPUSH key value [value ...]

#将一个或多个值 value 插入到列表 key 的表头  从后往前插,后插入的排到第一位
# 在Redis 2.4版本以前的 LPUSH 命令,都只接受单个 value 值。

如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。

key 存在但不是列表类型时,返回一个错误。

相关命令参考:https://www.runoob.com/redis/lists-lrange.html

1.设定列表值

LPUSH languages python (languages:键,python:值)

2.取值

LRANGE languages 0 10 (0:开始位置,10:代表结束位置)

3.注意:

-1:代表:倒数第一个元素,-2:代表倒数第二个元素,以此类推。

redis之getbit、setbit

在getbit和setbit操作中,redis把string中的字符看成二进制流处理,例如“012”这个字符串

十六进制格式为:0x30,0x31,0x32

二进制格式为00110000,00110001,00110002

因此,这个字符串第0为为0,第1位为0,第位为1,第3位为1,以此类推,第二个字符从第8位开始

setbit key offset value命令会设置新位为value,并返回旧位值set k1 “012”

getbit k1 0

返回0

getbit k1 2

返回1

字符串String

注意:这里的偏移量都是从下标0开始。

1.增

追加:append key value

同时设置多个key:msetnx key value [key value …]

setnx key value:只有在 key 不存在时设置 key 的值。

2.

del key:删除指定的key

3.改

[setrange key offset value]:用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。

4.

[MGET key1 [key2…]]:同时获取多个给定key的值

5.基本运算命令

incrby key n (只能用于字符串值时整数的key,其他有小数的都不行):对存储整数的字符串的值+n

INCRBYFLOAT key n (改n可以为浮点型):对存储数字型的字符串的值+n

decr key:将 key 中储存的数字值减一。(只能用于字符串值时整数的key,其他有小数的都不行)

incr key:将 key 中储存的数字值加一。(只能用于字符串值时整数的key,其他有小数的都不行)

哈希

运算

HINCRBY key field increment为哈希表 key 中的指定字段的整数值加上增量 increment

HINCRBYFLOAT key field increment为哈希表 key 中的指定字段的浮点数值加上增量 increment 。

[ HMSET key field1 value1 field2 value2 ] 同时将多个 field-value (域-值)对设置到哈希表 key 中。

HSETNX key field value只有在字段 field 不存在时,设置哈希表字段的值。

删除

[HDEL key field1 field2]:删除一个或多个哈希表字段

HSET key field value 将哈希表 key 中的字段 field 的值设为 value 。

HEXISTS key field 查看哈希表 key 中,指定的字段是否存在。

HGET key field获取存储在哈希表中指定字段的值。
HGETALL key 获取在哈希表中指定 key 的所有字段和值

HKEYS key获取所有给定字段的值

HVALS key获取哈希表中所有值

HSCAN key cursor [MATCH pattern] [COUNT count]:用于迭代哈希表中的键值对。具体如下:

edis HSCAN 命令基本语法如下:
# 注意:匹配到元素时,会返回对应的键值对。
HSCAN key cursor [MATCH pattern] [COUNT count]
cursor - 游标。
pattern - 匹配的模式。
count - 指定从数据集里返回多少元素,默认值为 10#示例:
> HSCAN sites 0 match "run*"
1) "0"
2) 1) "runoob"
2) "runoob.com"

列表

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

BRPOPLPUSH source destination timeout
从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

LINSERT key BEFORE|AFTER pivot value (将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。)
在列表的元素前或者后插入元素

[ LPUSH key value1 value2] 将一个或多个值插入到列表头部(即先插入的排到最后,索引为0,索引的时候是从后往前)

LPUSHX key value 将一个值插入到已存在的列表头部

[ RPUSH key value1 value2] 在列表中添加一个或多个值

RPUSHX key value
为已存在的列表添加值

BLPOP key1 key2 ] timeout移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

[BRPOP key1 key2 ] timeout移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

LPOP key
移出并获取列表的第一个元素

LREM key count value

  • count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
  • count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
  • count = 0 : 移除表中所有与 VALUE 相等的值。

移除列表元素

RPOP key
移除列表的最后一个元素,返回值为移除的元素。

LSET key index value

通过索引设置列表元素的值

LTRIM key start stop
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除

LINDEX key index
通过索引获取列表中的元素

LLEN key
获取列表长度(长度为元素的个数)

LRANGE key start stop–注意:改指令查出来的元素,最上面的元素即索引为0的元素。
获取列表指定范围内的元素 (索引的时候是从后往前,index=0,代表最后一个元素,即最先插入的元素)

无序集合

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

集合对象的编码可以是 intset 或者 hashtable。

Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

[ SADD key member1 member2] 向集合添加一个或多个成员

删除

SPOP key
移除并返回集合中的一个随机元素 (这里移除的元素是随机元素)

[SREM key member1 member2](member:即为元素值)
移除集合中一个或多个成员

DEL KEY:删除指定key集合。

修改

SMOVE source destination member
将 member 元素从 source 集合移动到 destination 集合

查询

SCARD key
获取集合的成员数

[SDIFF key1 key2]
返回第一个集合与其他集合之间的差异。(会返回少的集合在相对多的集合的缺失元素)

[SDIFFSTORE destination key1 key2]
返回给定所有集合的差集并存储在 destination 中

[SINTER key1 key2]
返回给定所有集合的交集

[SINTERSTORE destination key1 key2]
返回给定所有集合的交集并存储在 destination 中

SISMEMBER key member
判断 member 元素是否是集合 key 的成员

SMEMBERS key
返回集合中的所有成员

[SRANDMEMBER key count]
返回集合中一个或多个随机数

[ SUNION key1 key2] 返回所有给定集合的并集

[SUNIONSTORE destination key1 key2]
所有给定集合的并集存储在 destination 集合中

[ SSCAN key cursor MATCH pattern] [COUNT count] 迭代集合中的元素

有序集合

Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员

不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。

增加

[ZADD key score1 member1 score2 member2]这里的key不能和之前的有序集合相同
向有序集合添加一个或多个成员,或者更新已存在成员的分数

删除

[ZREM key member member …]
移除有序集合中的一个或多个成员

ZREMRANGEBYLEX key min max
移除有序集合中给定的字典区间的所有成员

ZREMRANGEBYRANK key start stop
移除有序集合中给定的排名区间的所有成员

ZREMRANGEBYSCORE key min max 移除有序集合中给定的分数区间的所有成员

修改

INCRBY key increment member
有序集合中对指定成员的分数加上增量 increment

[ZINTERSTORE destination numkeys key key …]
计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 destination 中

[ZUNIONSTORE destination numkeys key key …]
计算给定的一个或多个有序集的并集,并存储在新的 key 中

查询

ZCARD key 获取有序集合的成员数

ZCOUNT key min max
计算在有序集合中指定区间分数的成员数 (注意不包括max的索引)

ZCOUNT key min max
计算在有序集合中指定区间分数的成员数

ZLEXCOUNT key min max
在有序集合中计算指定字典区间内成员数量

[ZRANGE key start stop WITHSCORES]
通过索引区间返回有序集合指定区间内的成员

[ ZRANGEBYLEX key min max LIMIT offset count] 通过字典区间返回有序集合的成员

[ZRANGEBYSCORE key min max WITHSCORES] [LIMIT]

例如:

ZRANGEBYSCORE lifu1 0 1   # [0,1] 闭区间 即返回分数区间的元素

通过分数返回有序集合指定区间内的成员

ZRANK key member 返回有序集合中指定成员的索引

[ZREVRANGE key start stop WITHSCORES]
返回有序集中指定区间内的成员,通过索引,分数从高到低

[ZREVRANGEBYSCORE key max min WITHSCORES] (即分数最高的排在最前面,最大的那个返回0,其次是1,以此类推。)
返回有序集中指定分数区间内的成员,分数从高到低排序

ZREVRANK key member
返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序

ZSCORE key member 返回有序集中,成员的分数值

[ZSCAN key cursor MATCH pattern] [COUNT count]
迭代有序集合中的元素(包括元素成员和元素分值)

HyperLogLog 命令

Redis 在 2.8.9 版本添加了 HyperLogLog 结构。

Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。

在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。

但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。

什么是基数?

比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。 基数估计就是在误差可接受的范围内,快速计算基数。

[PFADD key element element …]
添加指定元素到 HyperLogLog 中。

[PFCOUNT key key …]
返回给定 HyperLogLog 的基数估算值。

[PFMERGE destkey sourcekey sourcekey …](注意:destkey:为合并后的数据集的key值)
将多个 HyperLogLog 合并为一个 HyperLogLog

Redis发布订阅

Redis 客户端可以订阅任意数量的频道

image-20210930134818485 image-20210930134826782

redis发布订阅命令

[PSUBSCRIBE pattern pattern …]
订阅一个或多个符合给定模式的频道。

[PUBSUB subcommand argument [argument …]]
查看订阅与发布系统状态。

PUBLISH channel message
将信息发送到指定的频道。

[PUNSUBSCRIBE pattern [pattern …]]
退订所有给定模式的频道。

[SUBSCRIBE channel channel …]
订阅给定的一个或多个频道的信息。

[ UNSUBSCRIBE channel [channel …]] 指退订给定的频道。

Redis事务

  • 批量操作在发送 EXEC 命令前被放入队列缓存。
  • 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
  • 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。

一个事务从开始到执行会经历以下三个阶段:

  • 开始事务。
  • 命令入队。
  • 执行事务。

具体操作

127.0.0.1:6379> multi   #事务块的开始
OK
127.0.0.1:6379(TX)> set book "spring boot"
QUEUED
127.0.0.1:6379(TX)> get book
QUEUED
127.0.0.1:6379(TX)> set name "hjx"
QUEUED
127.0.0.1:6379(TX)> get name
QUEUED
127.0.0.1:6379(TX)> exec   #执行事务块中的所有命令  (上述的 set ,get...)
1) OK
2) "spring boot"
3) OK
4) "hjx"
127.0.0.1:6379> 

事务命令

DISCARD
取消事务,放弃执行事务块内的所有命令。

EXEC
执行所有事务块内的命令。

MULTI 标记一个事务块的开始。

UNWATCH
取消 WATCH 命令对所有 key 的监视。

[WATCH key key …]
监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。

Redis脚本

Redis 脚本使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL

Eval 命令的基本语法如下:

redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]

redis脚本命令

[EVAL script numkeys key key …] arg [arg …]
执行 Lua 脚本。

[EVALSHA sha1 numkeys key key …] arg [arg …]
执行 Lua 脚本。

[SCRIPT EXISTS script script …]
查看指定的脚本是否已经被保存在缓存当中。

SCRIPT FLUSH 从脚本缓存中移除所有脚本。

SCRIPT KILL
杀死当前正在运行的 Lua 脚本。

SCRIPT LOAD script
将脚本 script 添加到脚本缓存中,但并不立即执行这个脚本。

Redis连接

redis连接命令

AUTH password
验证密码是否正确

ECHO message
打印字符串‘

PING
查看服务是否运行

QUIT
关闭当前连接

SELECT index
切换到指定的数据库

image-20210930142205225

Redis GEO

Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增。

Redis GEO 操作方法有:

  • geoadd:添加地理位置的坐标。
  • geopos:获取地理位置的坐标。
  • geodist:计算两个位置之间的距离。
  • georadius:根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。
  • georadiusbymember:根据储存在位置集合里面的某个地点获取指定范围内的地理位置集合。
  • geohash:返回一个或多个位置对象的 geohash 值。

geoadd 语法格式如下:

GEOADD key longitude latitude member [longitude latitude member ...]
#longitude:经度
#latitude:维度

示例:

1.计算距离

#Sicily:为key  后面的美3个为一个数据
# 命令GEODIST key member1 member2 [m|km|ft|mi]  m :米,默认单位。
#km :千米。
#mi :英里。
#ft :英尺。
127.0.0.1:6379> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
127.0.0.1:6379> geodist Palermo Catania
(error) ERR wrong number of arguments for 'geodist' command
127.0.0.1:6379> geodist Sicily  Palermo Catania   # 计算时一定要带上key
"166274.1516"
127.0.0.1:6379> 

2.返回地理坐标

127.0.0.1:6379> geopos Sicily Palermo
1) 1) "13.36138933897018433"
   2) "38.11555639549629859"
127.0.0.1:6379> 

Redis Stream

Redis Stream 是 Redis 5.0 版本新增加的数据结构。

Redis Stream 主要用于消息队列(MQ,Message Queue),Redis 本身是有一个 Redis 发布订阅 (pub/sub) 来实现消息队列的功能,但它有个缺点就是消息无法持久化,如果出现网络断开、Redis 宕机等,消息就会被丢弃。

简单来说发布订阅 (pub/sub) 可以分发消息,但无法记录历史消息。

而 Redis Stream 提供了消息的持久化和主备复制功能,可以让任何客户端访问任何时刻的数据,并且能记住每一个客户端的访问位置,还能保证消息不丢失。

Redis Stream 的结构如下所示,它有一个消息链表,将所有加入的消息都串起来,每个消息都有一个唯一的 ID 和对应的内容:

image-20210930143835564

每个 Stream 都有唯一的名称,它就是 Redis 的 key,在我们首次使用 xadd 指令追加消息时自动创建。

上图解析:

  • Consumer Group :消费组,使用 XGROUP CREATE 命令创建,一个消费组有多个消费者(Consumer)。
  • last_delivered_id :游标,每个消费组会有个游标 last_delivered_id,任意一个消费者读取了消息都会使游标 last_delivered_id 往前移动。
  • pending_ids :消费者(Consumer)的状态变量,作用是维护消费者的未确认的 id。 pending_ids 记录了当前已经被客户端读取的消息,但是还没有 ack (Acknowledge character:确认字符)。

消息队列相关命令:

  • XADD - 添加消息到末尾
  • XTRIM - 对流进行修剪,限制长度
  • XDEL - 删除消息
  • XLEN - 获取流包含的元素数量,即消息长度
  • XRANGE - 获取消息列表,会自动过滤已经删除的消息
  • XREVRANGE - 反向获取消息列表,ID 从大到小
  • XREAD - 以阻塞或非阻塞方式获取消息列表

消费者组相关命令:

  • XGROUP CREATE - 创建消费者组
  • XREADGROUP GROUP - 读取消费者组中的消息
  • XACK - 将消息标记为"已处理"
  • XGROUP SETID - 为消费者组设置新的最后递送消息ID
  • XGROUP DELCONSUMER - 删除消费者
  • XGROUP DESTROY - 删除消费者组
  • XPENDING - 显示待处理消息的相关信息
  • XCLAIM - 转移消息的归属权
  • XINFO - 查看流和消费者组的相关信息;
  • XINFO GROUPS - 打印消费者组的信息;
  • XINFO STREAM - 打印流信息

添加消息(XADD

使用 XADD 向队列添加消息,如果指定的队列不存在,则创建一个队列,XADD 语法格式:

XADD key ID field value [field value ...]
  • key :队列名称,如果不存在就创建
  • ID :消息 id,我们使用 * 表示由 redis 生成,可以自定义,但是要自己保证递增性。
  • field value : 记录。

获取消息(XRANGE)

使用 XRANGE 获取消息列表,会自动过滤已经删除的消息 ,语法格式:

XRANGE key start end [COUNT count]
  • key :队列名
  • start :开始值, - 表示最小值
  • end :结束值, + 表示最大值
  • count :数量

示例如下:

#添加消息
127.0.0.1:6379> xadd message1 101 name hjx age 23
"101-0"
# 获取消息  -:代表最小值 +:代表最大值 
#注意:必须带上COUNT 再跟上数值
127.0.0.1:6379> xrange message1 - + COUNT 1
1) 1) "101-0"
   2) 1) "name"
      2) "hjx"
      3) "age"
      4) "23"
127.0.0.1:6379> 

修剪消息(XTRIM)

使用 XTRIM 对流进行修剪,限制长度, 语法格式:

XTRIM key MAXLEN [~] count
  • key :队列名称
  • MAXLEN :长度
  • count :数量

如果当你对消息进行修建后,仍然可以向流添加消息,但是当你再次查询的话,就只能查询count条消息。(这只局限于第一次修建后的第一次查询,此后不受限制)

删除消息

使用 XDEL 删除消息,语法格式:

XDEL key ID [ID ...]
  • key:队列名称
  • ID :消息 ID

获取消息流的长度

XLEN

使用 XLEN 获取流包含的元素数量,即消息长度,语法格式:

XLEN key
  • key:队列名称

获取消息列表(XREVRANGE)

使用 XREVRANGE 获取消息列表,会自动过滤已经删除的消息 ,语法格式:

XREVRANGE key end start [COUNT count]
  • key :队列名
  • end :结束值, + 表示最大值
  • start :开始值, - 表示最小值
  • count :数量

以阻塞或非阻塞方式获取消息列表XREAD

使用 XREAD 以阻塞或非阻塞方式获取消息列表 ,语法格式:

XREAD [COUNT count] [BLOCK milliseconds] STREAMS key [key ...] id [id ...]
  • count :数量
  • milliseconds :可选,阻塞毫秒数,没有设置就是非阻塞模式
  • key :队列名
  • id :消息 ID

创建消费者组XGROUP CREATE

使用 XGROUP CREATE 创建消费者组,语法格式:

XGROUP [CREATE key groupname id-or-$] [SETID key groupname id-or-$] [DESTROY key groupname] [DELCONSUMER key groupname consumername]
  • key :队列名称,如果不存在就创建
  • groupname :组名。
  • $ : 表示从尾部开始消费,只接受新消息,当前 Stream 消息会全部忽略。

从头开始消费:

XGROUP CREATE mystream consumer-group-name 0-0  

从尾部开始消费:

XGROUP CREATE mystream consumer-group-name $

读取消费组中的消息XREADGROUP GROUP

使用 XREADGROUP GROUP 读取消费组中的消息,语法格式:

XREADGROUP GROUP group consumer [COUNT count] [BLOCK milliseconds] [NOACK] STREAMS key [key ...] ID [ID ...]
  • group :消费组名
  • consumer :消费者名。
  • count : 读取数量。
  • milliseconds : 阻塞毫秒数。
  • key : 队列名。
  • ID : 消息 ID。

Redis数据备份

edis SAVE 命令用于创建当前数据库的备份。

保存数据

image-20210930151758271

恢复数据

如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。获取 redis 目录可以使用 CONFIG 命令,如下所示:

redis 127.0.0.1:6379> CONFIG GET dir
1) "dir"
2) "/usr/local/redis/bin"

以上命令 CONFIG GET dir 输出的 redis 安装目录为 /usr/local/redis/bin。

image-20210930152403231

Bgsave(备份文件)

创建 redis 备份文件也可以使用命令 BGSAVE,该命令在后台执行。

实例

127.0.0.1:6379> BGSAVE

Background saving started

Redis安全设置

我们可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让你的 redis 服务更安全

查看是否设置密码

127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) ""

默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验证就可以连接到 redis 服务。

你可以通过以下命令来修改该参数:

设置密码

默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验证就可以连接到 redis 服务。

你可以通过以下命令来修改该参数:

127.0.0.1:6379> CONFIG set requirepass "runoob"
OK
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) "runoob"

设置密码后,客户端连接 redis 服务就需要密码验证,否则无法执行命令。

AUTH(验证密码是否正确)

auth 123456
#返回 ok代表正确

ocal/redis/bin"


以上命令 **CONFIG GET dir** 输出的 redis 安装目录为 /usr/local/redis/bin。
image-20210930152403231

Bgsave(备份文件)

创建 redis 备份文件也可以使用命令 BGSAVE,该命令在后台执行。

实例

127.0.0.1:6379> BGSAVE

Background saving started
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 16:56:57  更:2021-10-01 16:57:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:37:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码