Redis的9种数据类型与数据持久化

news2024/10/6 23:35:16

系列文章传送门:

【七天入门数据库】第一天 MySQL的安装部署

【七天入门数据库】第二天 数据库理论基础

【七天入门数据库】第三天 MySQL的库表操作

【七天入门数据库】第四天 数据操作语言DML

一、Redis的9种数据类型的基本操作

(一)key类型

创建key:set 键名 值名

查看所有key:keys *

修改 key 的名称:rename key newkey

查看数据库的key数量:dbsize

清空当前数据库:flushdb

清空所有数据库:flushall

删除key:del 键名

(二)string类型

String 是 redis 最基本的类型,一个 key 对应一个 value。

设置指定 key 的值(也可用于修改):set 键名 值名

查看key的值:get 键名

获取所有(一个或多个)给定 key 的值:MGET key1 [key2..]

同时设置一个或多个键值对:MSET key value [key value ...]

(三)list类型

Redis列表是简单的字符串列表,按照插入顺序排序。

创建列表:lpush 列表名 值1 值2...

查看列表的所有值:lrange 列表名 0 -1

删除指定数量的列表元素:lrem 列表名 值的数量 值

修剪列表:ltrim 列表名 起始位 终止位

(四)set类型

Redis 的 Set 是 String 类型的无序集合。集合中成员是唯一的。

创建集合:sadd 集合名 值1 值2...

查看集合的值:smembers 集合名

删除指定元素:srem 集合名 值1 值2....

(五)zset类型

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

创建有序集合:zadd 集合名 分数1 值1 分数2 值2....

查看所有值:zrange 集合名 0 -1

删除指定元素:zrem 集合名 值1 值2...

删除全部:zremrangebyrank 集合名 0 -1

(六)hash类型

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

创建哈希表:hset 哈希名 字段1 值1 字段2 值2.....

查看所以内容:hgetall 哈希名

查看所有字段:hkeys 哈希名

查看所有值:hvals 哈希名

看指定字段的值:hmget 哈希名 字段1 字段2....

(七)bitmaps类型

一个以位为单位的数组, 数组的每个单元只能存储0和1, 数组的下标在Bitmaps中叫做偏移量。

创建:setbit 指定名 键名 值名

统计:bitcount 指定名

查看某个键的值:getbit 指定名 键名

复合操作:bitop and(or/not/xor) 新指定名 键1 键2....

(八)hyperloglog类型

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

添加指定元素到 HyperLogLog 中:pfadd hplog名 值1 值2...

统计不重复的个数:pfcount hplog名

合并:pfmerge 新hplog名 源hplog名1 源hplog名2

(九)geospatial类型

该类型,就是元素的2维坐标,在地图上就是经纬度。

添加地理位置(经度,纬度,名称):geoadd key longitude latitude member [longitude latitude member...]

获得指定地区的坐标值:geopos key member [member...]

获取两个位置之间的直线距离:geodist key member1 member2 [m|km|ft|mi]

以给定的经纬度为中心,找出某一半径内的元素:georadius key longitude latitude radius [m|km|ft|mi]

二、redis的数据持久化

(一)RDB

       在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就是Snapshot快照,它恢复时是将快照文件直接读到内存里。

      备份方式:Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到 一个临时文件中,待持久化过程都结束后,再用这个临时文件替换上次持久化好的文件。 整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。

      配置方法:前往redis.conf文件中添加以下语句

  • 设置触发机制:save 300 10  
  • 设置存储位置:dir "/usr/local/redis/data/"
  • 设置文件初始名:dbfilename dump.rdb

888b283702994d53a8f9a3af5d6bea30.png

(二)AOF

       以日志的形式来记录每个写操作(增量保存),将Redis执行过的所有写指令记录下来(读操作不记录), 只追加文件但不可以改写文件,Redis启动之初会读取该文件重新构建数据。简单说,Redis 重启时会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。

       配置方法:通过修改redis.conf配置中appendonly yes来开启AOF持久化

6c82d9b04d16450fbaea80edc4f09852.png

都看到这里了,创作不易,大家点个赞再走啦!!- ̗̀(๑ᵔ⌔ᵔ๑)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/782741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务器中了360后缀勒索病毒,360后缀勒索病毒介绍解密数据恢复

360后缀勒索病毒,是BeijingCrypt勒索家族中的一种勒索软件病毒,这种恶意软件一旦攻击了企业的服务器就会利用自身独特的加密技术来全盘扫描系统文件,并对用户的全部文件进行加密,并要求用户支付赎金以解锁文件。近期,我…

16matlab数据分析 多项式的求导(matlab程序)

1.简述 多项式的求导 polyder( ):多项式求导函数。调用格式: ( 1 ) ppolyder( P):求多项式P的导函数。 ( 2 ) ppolyder(P,Q):求PQ的导函数。 ( 3 ) [p,q]polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q。 多项式的表示 多项式的四则运算 四…

i.MX6ULL(十七) linux LED驱动

1 设备树 LED 驱动原理 对于MX6ULL 点灯方式较多,直接通过寄存器操作更适合低成本设备,与裸机实验不同的是,在 Linux 下编写驱动要符合 Linux 的驱动框架。 但Linux 下的任何外设驱动,最终都是要配置相应的硬件寄存器&#xff0…

Spring中的Bean对象

经过上一篇博客,我们已经可以实现基本的 Spring 读取和存储对象的操作了,但在操作的过程中我们发 现读取和存储对象并没有想象中的那么“ 简单 ” ,所以接下来我们要学习更加简单的操作 Bean 对象的方法。 在 Spring 中想要 更简单的存储…

mac怎么转换音频格式?

mac怎么转换音频格式?相信很多小伙伴都知道,平时我们接触到的音频格式大多是mp3格式的,因为mp3是电脑上最为流行的音频格式,不过除了mp3格式外,还有很多不同的音频格式,有时候不同网上或者不同软件上下载到…

Python爬虫学习笔记(十)————Scrapy

目录 1.scrapy是什么? 2.安装scrapy 3. scrapy项目的创建以及运行 (1)创建scrapy项目: (2)项目组成: (3)创建爬虫文件: ①跳转到spiders文件夹中去创建…

ext4 - delay allocation数据结构

概述 延迟分配delay allocation是ext4非常重要的特性,启用该特性write系统将用户空间buffer写入内存page cache中即返回,此时也不会真正进行磁盘block分配,而是延迟到磁盘回写时(比如dirty ratio达到一定值,定时刷新&…

高校大数据教材推荐-《Python中文自然语言处理基础与实战》

《Python中文自然语言处理基础与实战》是“十四五”职业教育国家规划教材,是大数据应用开发(Python)“1X”职业技能等级证书配套系列教材。本书以项目为载体,突出职业技能。坚持理实一体化的理念。理实一体化,就是理论…

H5基础教程

w3school官网 请点击下面工程名称,跳转到代码的仓库页面,将工程 下载下来 Demo Code 里有详细的注释 TestH5

Vue3+Vite前端知识汇总1篇

目录 1、设置package.json,让编译完成后自动打开浏览器。 2、设置vite.config.ts,设置src别名,后面就不用 ../../../ 了。 3、安装types/node 解决vscode显示红波浪线问题。 4、安装 sass和reset.css 5、创建并引入全局组件,HospitalTop…

2816. 判断子序列

题目链接&#xff1a; 自己的做法&#xff1a; #include <bits/stdc.h>using namespace std;const int N 1e5 10; int a[N], b[N]; int main() {int n, m;bool flag true;scanf("%d%d", &n, &m);for (int i 0; i < n; i) scanf("%d"…

【C++】AVL树的实现及测试

文章目录 AVL树节点的定义AVL树的定义AVL树的插入插入后更新平衡因子AVL树的右单旋AVL树的左单旋先左单旋再右单旋先右单旋再左单旋检查是否满足AVL树总代码 AVL树 AVL树也叫平衡二叉搜索树&#xff0c;通过旋转解决了搜索二叉树的不确定性&#xff0c;让整颗树趋近于一颗满二叉…

一本通OJ 1810 登山 题解

题目链接 题目大意 从 ( 0 , 0 ) (0,0) (0,0) 走到 ( n , n ) (n,n) (n,n) &#xff0c;不能超过直线 y x yx yx&#xff0c;并且图上有 m m m 个点不能走&#xff0c;问你有几种方案 解题思路 很明显这题与卡特兰数有关&#xff0c;但是不同点在于这题中存在点不能走…

解决阿里云服务器不能访问端口

服务器已经下载了redis&#xff0c;kafka&#xff0c;但就是访问不了端口号&#xff0c; 开通云服务器以后&#xff0c;请一定在安全组设置规则&#xff0c;放行端口 防火墙要关闭

服务器内存满了解决之路

背景&#xff1a;大清早&#xff0c;突然一通电话吵醒&#xff0c;说项目跑不了&#xff0c;还没洗漱赶紧跑过来&#xff0c;毕竟属于实时在用的系统。排查发现系统盘满了&#xff0c;数据写不进去了&#xff0c;导致报错。接手的项目&#xff0c;从来没考虑服务器问题&#xf…

SR501人体红外模块

文章目录 前言一、SR501模块介绍二、设备树添加节点三、驱动程序四、测试程序五、上机测试及效果总结 前言 人体红外模块 是一种能够检测人或动物发射的红外线而输出电信号的传感器。广泛应用于各种自动化控制装置中。比如常见的楼道自动开关、防盗报警等。 一、SR501模块介绍…

深度学习-第R1周心脏病预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 我的环境&#xff1a; 语言环境&#xff1a;Python3.10.7编译器&#xff1a;VScode深度学习环境&#xff1a;TensorFlow 2.13.0 一、前期工作&#xff1a; …

语义通信中基于深度双Q网络的多维资源联合分配算法

目录 论文简介系统模型多维资源联合分配模型多维资源联合分配算法 论文简介 作者 林润韬 郭彩丽 陈九九 王彦君发表期刊or会议 《移动通信》发表时间 2023.4 系统模型 场景中的边缘服务器部署在路边单元上&#xff0c;每个路边单元具有一定的无线覆盖区域&#xff0c;服务器将…

安装mmocr

安装mmocr 一、安装mmdetection 在安装前&#xff0c;如果已经安装过mmcv&#xff0c;先卸载掉&#xff0c;否则不同版本会导致ModuleNotFoundError报错&#xff01; 1、先安装对应版本的pytorch&#xff08;本次cuda10.2&#xff0c;pytorch1.7&#xff09; 2、安装对应版本的…

TableGPT: Towards Unifying Tables, Nature Language and Commands into One GPT

论文标题&#xff1a;TableGPT: Towards Unifying Tables, Nature Language and Commands into One GPT 论文地址&#xff1a;https://github.com/ZJU-M3/TableGPT-techreport/blob/main/TableGPT_tech_report.pdf 发表机构&#xff1a;浙江大学 发表时间&#xff1a;2023 本文…