Redis学习(三):五大数据类型及常用操作

news2024/9/22 23:36:40

五大数据类型

Redis-Key

set [key] [value]  # 向数据库添加一个键值对
keys *  # 查看当前数据库所有的键值
EXISTS [key] # 查看key是否存在在当前数据库中,存在返回1,不存在返回0
move [key] [index] # 将key移动到编号为index的数据库,移动完之后当前数据库的key就被移除了
del [key] # 删除这个key
get [key]  # 获取key对应的value值
expire [key] [seconds] # 设置key过了seconds秒后过期
ttl [key] # 查看key还剩几秒过期, 如果是长期有效的,则返回值为-1,如果过期了,返回-2
type [key] # 查看key对应value的类型

不会的命令还可以在redis官网查看文档。

String ( 字符串 )

append 指令,strlen指令

image-20230305154904495

image-20230305155036497

append对应的key值如果不存在,则命令效果相当于set命令

image-20230305155223126

incr和decr指令

image-20230305155418885

incrby和decrby :可以指定步长

image-20230305155457071

getrange :根据起止位置截取字符串,包含起止位置的字符,-1代表最后一个字符的下标

image-20230305160131672

setrange :替换指定位置开始的字符串

image-20230305160308498

setex和setnx :set with expire和set if not exists

image-20230305160637294

mset和mget :批量添加获取值

image-20230305161118188

msetnx和上面的setnx类似,但是这个是原子操作,当且仅当所有的key值都不存在的时候,才会执行。

image-20230305161357405

设置对象
set user:1 {name:zhangshan,age:3} # 设置一个user:1对象,值为json字符串来保存对象
也可以通过设计key来通过多个键值对来保存对象。
image-20230305213628172

像上图这样采用了 user:{id}:{field} 的格式来设计key。

getset

组合命令,有点像后缀自增。

image-20230305213855424

List(列表)

基本的数据类型,列表
在redis里面,我们可以吧list用作栈,队列
lpush向队列头添加一个元素,rpush 向队列尾添加一个元素。lrange和上面range的用法一样。

image-20230306093150592

lpop和rpop就是从队列中弹出元素的命令

image-20230306093509726

lindex 是获取下标对应的元素,下标从0开始。

image-20230306093725242

llen 获取列表长度

image-20230306093941547

lrem 从列表中移除元素,从list中移除指定个value

image-20230306094547695

image-20230306094458748

ltrim命令,修剪操作,保留list的一部分。通过下标截取指定长度。

image-20230306094841591

rpoplpush,组合命令。取出栈顶的元素,放到另外一个list里面。

image-20230306095235416

image-20230306095217306

lset,改变列表指定下标元素的值,这个命令不能创建新的列表,也不能给原本没有元素的下标赋值。

image-20230306095722709

image-20230306095622425

linsert

image-20230306095847263

image-20230306100014323

如果列表里有多个相同的值,则只会最靠前的进行操作。

image-20230306100250204

小结

可以把这个列表想象成双向链表来理解这些操作。

Set (集合)

和其他语言里面的set一样,这里的set也不能存放重复的值。

基本操作

sadd,向set中添加元素,添加重复的元素会返回0,代表添加失败;
smembers,查看set中所有元素;
sismember,查看set中有没有指定元素。

image-20230306101044903

scard,获取set中元素的个数

image-20230306101244762

srem,从set中移除指定元素

image-20230306101518133

srandmember,从set中随机获取n个值

image-20230306101800789

image-20230306101738479

spop,从set中随机移除一个元素

image-20230306102034808

smove,将某个元素从一个集合移动到另一个集合

image-20230306102211561

image-20230306102341917

集合交并补

sdiff,返回多个集合的差集
sinter,返回多个集合的交集
sunion,返回多个集合的并集

image-20230306103721682

Hash (散列表)

在redis中相当于 key - map,原本的value里放了一个map

hset,hget存取值

image-20230306104731312

image-20230306104903234

image-20230306104914257

hmset,可以放多个值,但是hset也能达到相同的效果

image-20230306104929840

hmget,可以同时取出多个值

image-20230306105109274

hgetall,获取所有字段的值

image-20230306105352920

hdel,删除指定字段
image-20230306105543312

image-20230306105511492

hlen,获取有多少个键值对
hexists,判断指定字段是否存在

image-20230306105816568

hkeys/hvals,只获取hash里面的key/value值

image-20230306105952840

hincrby,自增命令;这里没有自减的命令,把自增的步长设置为负数即可实现

image-20230306110105654

hsetnx,如果不存在就创建,和setnx用法相同。

hash存取数据效率很高,适合存放经常变动的数据。

Zset(有序集合)

在set的基础上,增加了一个权重值。

基本添加查找

zadd key score value
zadd也支持添加多个值

image-20230306110940059

排序

zrangebyscore 按照zadd时给定的score排序,可以指定score的范围

image-20230306111349117

image-20230306111624691

image-20230306111749796

也可以添加符号来选择开区间

image-20230306112000440

zrevrange,逆序排列

image-20230306112503282

移除元素

zrem,删除元素

image-20230306112246451

获取个数

zcard,获取集合中的个数
zcount,获取指定区间的元素个数

image-20230306112651509

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

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

相关文章

Docker(八)---Docker安全相关设定

文章目录一、理解docker安全二、容器资源控制1.cpu资源限制2.cpu优先级3.内存资源限制4.磁盘io限制三、docker安全加固(隔离)四、容器特权一、理解docker安全 Docker容器的安全性,很大程度上依赖于Linux系统自身,评估Docker的安全…

扬帆优配|多只“迷你基”清盘未果业绩反领跑 盲目追捧有风险

2023年以来,在信创板块一枝独秀的行情下,多只重仓该板块的基金成绩乘着春风起舞,但作为较为小众的职业,现在来看能够真正享受到红利的基金多为迷你基金。有剖析指出,不少“迷你基”经过押注单一赛道或许投资小盘股等方…

【数据库】排名问题

返回第N高的一个解决思路返回N组中的第N高解决思路分数排名解决思路窗口函数数据库经常被用来解决排名问题。 返回第N高的一个 单表查询: 表: Employee------------------- | Column Name | Type | ------------------- | id | int | | salary | int | ----…

HTML DOM 改变 HTML 内容

HTML DOM 允许 JavaScript 改变 HTML 元素的内容。改变 HTML 输出流在 JavaScript 中&#xff0c;document.write() 可用于直接向 HTML 输出流写内容。实例<!DOCTYPE html><html><body><script>document.write(Date());</script></body>&l…

算法分析与设计之并查集详解

算法分析与设计之并查集1.前言2.并查集的基础2.1.关于动态连通性2.2.动态连通性的应用场景&#xff1a;2.3.对问题建模&#xff1a;2.4.建模思路&#xff1a;2.5.API2.7.Quick-Find算法&#xff1a;2.8.Quick-Union算法&#xff1a;3. 并查集的应用1.前言 本文主要介绍解决动态…

day02_设计测试用例的常见方法

软件测试用例 概念&#xff1a;一个为了特定的目的&#xff08;检验开发的代码实现是否满足用户的需求&#xff09;而设计的文档&#xff08;包含测试输入、执行条件、预期结果&#xff09;&#xff0c;文档的形式可以是xmind、excel等。 测试用例的核心要素 常见测试用例的…

Echarts-授人以鱼不如授人以渔

Echarts 授人以渔 授人以鱼不如授人以渔 这篇文章就告诉大家如何快速查阅官网的配置项手册 建议收藏&#xff0c;老司机请跳过 echarts是一个非常强大的图形库 但是对于很多刚入门的小伙伴而言echarts里面配置项海量的名词看到吐血 想要修改样式的时候不知道改哪里 下面就简…

【LeetCode】1653. 使字符串平衡的最少删除次数

1653. 使字符串平衡的最少删除次数 题目描述 给你一个字符串 s &#xff0c;它仅包含字符 ‘a’ 和 b’​​​​ 。 你可以删除 s 中任意数目的字符&#xff0c;使得 s 平衡 。当不存在下标对 (i,j) 满足 i < j &#xff0c;且 s[i] ‘b’ 的同时 s[j] ‘a’ &#xff0…

一次输入多个数据-batchsize大于1的简单的线性回归模型-标量

最简单的线性回归模型-标量 接上篇&#xff0c;由于batchsize为1&#xff0c;因此loss有很大的波动&#xff0c;这篇我们讨论batchsize大于1的情况。若batchsize数量为N&#xff0c;则ywxbywxbywxb的损失函数为&#xff1a; L∑i1N(wxi∗b−yi∗)2(wxTbeT−yT)(wxbe−y)\begin{…

html网页源码加密

html加密、网页加密、网页源码加密html网页源码能加密吗&#xff1f;能加密到何种程度&#xff1f; 某些时候&#xff0c;我们可能需要对html网页源码加密&#xff0c;使网页源码不那么容易被他人获得。出于这个目标&#xff0c;本文测试一种html加密方式。 提前透露&#xf…

Linux系统PWM应用编程

目录应用层如何操控PWM编写应用程序在开发板上测试本章我们将学习如何对开发板上的PWM 设备进行应用编程。 应用层如何操控PWM 与LED 设备一样&#xff0c;PWM 同样也是通过sysfs 方式进行操控&#xff0c;进入到/sys/class/pwm 目录下&#xff0c;如下所示&#xff1a; 这里…

Java多态性

用一句话概括就是&#xff1a;事物在运行过程中存在不同的状态。 多态的存在有三个前提: 1.要有继承关系 2.子类要重写父类的方法 3.父类引用指向子类对 但是其中又有很多细节需要注意。首先我们定义两个类&#xff0c;一个父类Animal&#xff0c;一个子类Cat。 父类Animal cl…

Hive学习——企业级调优

目录 一、计算资源调优 (一)Yarn资源配置——集群 1.Yarn配置说明 (1)yarn.nodemanager.resource.memory-mb (2)yarn.nodemanager.resource.cpu-vcores (3)yarn.scheduler.maximum-allocation-mb (4)yarn.scheduler.minimum-allocation-mb (二)MapReduce资源配置 二、…

裁员降本,扭转颓势!通用汽车吹响智能电动「中国集结号」

2023年&#xff0c;将是合资品牌能否搭上中国智能电动市场红利的关键一年。 全新一代VCS智能座舱&#xff08;高通8155&#xff0c;30英寸6K曲面OLED显示屏&#xff0c;12.6英寸WHUD以及5G版本的别克eConnect车联系统&#xff09;、全新一代Super Cruise超级辅助驾驶系统&#…

7.SpringSecurity中的权限管理

SpringSecurity中的权限管理 SpringSecurity是一个权限管理框架&#xff0c;核心是认证和授权&#xff0c;前面已经系统的给大家介绍过了认证的实现和源码分析&#xff0c;本文重点来介绍下权限管理这块的原理。 一、权限管理的实现 服务端的各种资源要被SpringSecurity的权限…

ccc-pytorch-卷积神经网络介绍(5)

文章目录一、卷积二、池化三、Batch Norm四、经典卷积网络简单介绍一、卷积 卷积连续函数形式&#xff1a; F(x)∫f(t)g(x−t)dtF(x)\int f(t)g(x-t)dtF(x)∫f(t)g(x−t)dt 物理意义是一个函数在另一个函数上的加权叠加。在2D卷积中指卷积核在数据矩阵中分割出的矩阵和卷积核相…

PMP和软考高项集成,更应该考哪个呢?

要看你自己的偏向&#xff0c;要说考的话&#xff0c;我是觉得都值得考的&#xff0c;一个证一份技术嘛。 我给你稍微介绍一下&#xff0c;PMP都是美国PMI发起的考试&#xff0c;软考高项是国内的考试。PMP是项目管理证书&#xff0c;学习的内容是项目管理&#xff0c;包含大约…

研报精选230306

目录 【行业230306东亚前海证券】食品饮料行业2023年年度投资策略&#xff1a;复苏在途&#xff0c;蓄势待发【行业230306国金证券】基础化工行业研究&#xff1a;MDI价格上行&#xff0c;新一轮国企改革在即【行业230306中银证券】华为汽车产业链深度报告&#xff1a;三种合作…

k8s控制器

目录 一、控制器简介 二、控制器类型 1、RC和RS 2、Deployment 3、DaemonSet 4、Job 5、CronJob 6、StateFulSet 7、HPA 一、控制器简介 在kubernetes中&#xff0c;按照Pod的创建方式可以将其分为两类&#xff1a; 自主式:kubernetes直接创建出来的Pod&#xff0c;…

【Alamofire】【Swift】属性包装器注解@propertyWrapper

Alamofire 中的源码例子 import Foundationprivate protocol Lock {func lock()func unlock() }extension Lock {/// Executes a closure returning a value while acquiring the lock.////// - Parameter closure: The closure to run.////// - Returns: The value…