【redis】常用数据类型及命令

news2024/9/21 15:35:08

通用命令

exists

判断key是否存在,返回1或0

del

删除key,key存在时返回1,key不存在时返回0

type

获取key类型

ttl

获取key剩余生存时间,-2表示key不存在,-1表示key永久生存

String类型

介绍

String类型是Redis最基本的数据类型,它存储的是字符串,字符串可以包含字母、数字、特殊字符等,字符串的长度没有限制,但是Redis的内存大小是有限的,如果存储的数据超过内存,Redis会自动删除数据。

常用命令

set/get

设置和获取数据key-value

set key value
get key
mset/mget

设置和获取多个key-value对数据,

mset key1 value1 key2 value2
mget key1 key2
incr/decr

对key对应的value进行加减1操作

incr key
decr key
incrby/decrby

对key对应的value进行加减操作,可以设置步长

incrby key 2
decrby key 2
setex

设置key-value,并设置过期时间

setex key 10 value
setnx

设置key-value,如果key存在,则不设置

setnx key value
getset

先获取key的值,再设置key-value,当key不存在时,会返回nil

getset key value

注意

  • value 不能超过512MB
  • key 本身会占用内存,所以key的设计不要过长
  • key最好使用:分割,比如user:id

List类型

介绍

List 是字符串列表,按照插入顺序排列,每个元素都是字符串,List 可以被用作栈、队列等。List的底层是一个双向链表,插入和删除都是O(1),查询是O(n) 。

常用命令

lpush

在列表左边插入元素

lpush key value1 value2
rpop

从列表右边取出并删除元素

rpop key
lrange

取出指定范围的元素,下标从0开始

lrange key start end

lrange key 0 -1
llen

获取列表长度

llen key
rpush

在列表右边插入元素

rpush key value1 value2
lpop

从列表左边取出并删除元素

lpop key
brpop

从列表右边取出并删除元素,如果列表为空,则阻塞一段时间,直到有元素加入列表

brpop key timeout
lrem

删除指定数量的指定元素

lrem key count value

注意

  • 存储string 类型
  • 列表最多存储2^32-1个元素,

Hash类型

介绍

Hash 是字符串字典,通过哈希表实现,可以存储键值对,每个键只能对应一个值

我觉得看起来和string一样的,只不过是把一些key-value封装到了一起,相当于一个对象,便于管理

常用命令

hset

设置key指定的哈希集中指定字段的值

hset key field value
hget

获取key指定的哈希集中指定字段的值

hget key field
hmset

同时设置key指定的哈希集中一个或多个字段的值

hmset key field1 value1 field2 value2
hmget

同时获取key指定的哈希集中一个或多个哈希字段的值

hmget key field1 field2
hgetall

获取key指定的哈希集中所有字段和值

hgetall key
hdel

删除key指定的哈希集中指定字段

hdel key field1 field2
hexists

查看key指定的哈希集中是否包含指定字段

hexists key field
hlen

获取key指定的哈希集中的字段数量

hlen key
hincrby

为key指定的哈希集中指定字段的值加上指定值

如果字段不存在,则创建字段并设置初始值,如果字段不是数字,则返回错误

hincrby key field value

set类型

介绍

set 是一个集合,集合中元素是唯一的。集合可以用于去重,计算交集、差集,用户画像标签等。

集合也是通过哈希表实现的

常用命令

sadd

向集合中添加元素

sadd key member1 member2
srem

从集合中删除元素,忽略不存在的元素

srem key member1 member2
scard

获取集合中元素的数量

scard key
sdiff

获取第一个集合与其他集合的差集

sdiff key1 key2 ...
sinter

获取所有集合的交集

sinter key1 key2 ...
sunion

获取所有集合的并集

sunion key1 key2 ...
sismember

判断元素是否在集合中

sismember key member
smembers

取集合中的所有元素

smembers key

Sorted Set类型

介绍

Sorted Set 是有序集合,集合中元素是唯一的,并且按照分数排序,分数可以是整数或双精度浮点数。可以看作是在Set 基础上,通过维护score,添加了排序的功能。

可以用于实时排行榜,优先级队列等。

常用命令

zadd

向有序集合中添加元素,如果已经存在,则更新分数

zadd key score member
zrem

从有序集合中删除元素

zrem key member
zscore

获取有序集合中指定元素的分数

zscore key member
zcard

获取有序集合中元素的数量

zcard key
zcount

获取有序集合中指定分数范围的元素

zcount key min max
zincrby

为有序集合中指定元素加上指定分数

zincrby key score member
zrange

获取有序集合中指定范围的元素,按分数从小到大排序

zrange key start end
zrevrange

获取有序集合中指定范围的元素,按分数从大到小排序

zrevrange key start end
zrank

获取有序集合中指定元素的排名,按分数从小到大排序

zrank key member
zrevrank

获取有序集合中指定元素的排名,按分数从大到小排序

zrevrank key member

,按分数从小到大排序

zrange key start end
zrevrange

获取有序集合中指定范围的元素,按分数从大到小排序

zrevrange key start end
zrank

获取有序集合中指定元素的排名,按分数从小到大排序

zrank key member
zrevrank

获取有序集合中指定元素的排名,按分数从大到小排序

zrevrank key member

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

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

相关文章

msvcp100.dll是什么意思?msvcp100.dll丢失有什么可靠的解决方法

当我们在电脑中试图启动某些程序或游戏时,可能会遇到一个错误消息:"程序无法启动,因为计算机缺少msvcp100.dll"。其实遇到这种情况是非常的常见的,只要你是经常使用电脑的人,我们要解决它也非常的简单&#…

工作中遇到的问题总结(1)

文章目录 第一题问题描述解决思路 第二题问题描述解决思路核心大表如何优化数据迁移过程是怎么样的如何将流量从旧系统迁移到新系统上 第三题问题描述解决思路 第四题问题描述解决思路方案一:双写机制方案二:基于时间戳的分流机制方案三:灰度…

数据结构之线性表——LeetCode:707. 设计链表,206. 反转链表,92. 反转链表 II

707. 设计链表 题目描述 707. 设计链表 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则…

【滑动窗口】算法总结

文章目录 滑动窗口算法总结1.暴力求解vs滑动窗口2.需要注意的细节问题 2.滑动窗口的基本模板1.非固定窗口大小的滑动窗口2.固定窗口大小的滑动窗口细节 滑动窗口算法总结 1.暴力求解vs滑动窗口 遇到那些可以转化成一个子数组的长度的问题时,往往需要用到双指针。 …

二,MyBatis -Plus 关于映射 Java Bean 对象的注意事项和细节(详细说明)

二,MyBatis -Plus 关于映射 Java Bean 对象的注意事项和细节(详细说明) 文章目录 二,MyBatis -Plus 关于映射 Java Bean 对象的注意事项和细节(详细说明)1. 映射2. 表的映射3. 字段映射4. 字段失效5. 视图属性6. 总结:7. 最后: 1.…

【C/C++】速通涉及string类的经典编程题

【C/C】速通涉及string类的经典编程题 一.字符串最后一个单词的长度代码实现:(含注释) 二.验证回文串解法一:代码实现:(含注释) 解法二:(推荐)1. 函数isalnum…

单卡3090 选用lora微调ChatGLM3-6B

环境配置 Python 3.10.12 transformers 4.36.2 torch 2.0.1 下载demo代码 在官方网址https://github.com/THUDM/ChatGLM3/blob/main/finetune_demo 下载demo代码cd 进入文件夹 pip install -r requirements.txt 安装一些包 基本知识 SFT 全量微调: 4张显卡平均分配&#…

13年计算机考研408-数据结构

解析: 这个降序链表不影响时间复杂度,因为是链表,所以你想要升序就使用头插法,你想要降序就使用尾插法。 然后我们来分析一下最坏的情况是什么样的。 因为m和n都是两个有序的升序序列。 如果刚好m的最大值小于n的最小值&#xff0…

AI宠物拟人化新玩法,教你如何用0成本打造爆款创意内容!

近年来,随着AI技术的快速发展,各种创新玩法不断涌现,尤其是在内容创作领域,AI带来的变革尤为显著。 **其中,宠物拟人化逐渐成为社交媒体上的一大热门话题。**通过AI生成工具,我们不仅可以将宠物拟人化&…

Snapchat API 访问:Objective-C 实现示例

Snapchat 是一个流行的社交媒体平台,它允许用户发送和接收短暂存在的图片和视频。对于开发者来说,访问 Snapchat API 可以为应用程序添加独特的社交功能。本文将介绍如何在 Objective-C 中实现对 Snapchat API 的访问,并提供一个详细的代码示…

GD32F103单片机-EXTI外部中断

GD32F103单片机-EXTI外部中断 一、EXTI及NVIC介绍二、编程实验2.1 相关库函数2.2 实验代码 一、EXTI及NVIC介绍 GD32和STM32的EXTI基本相似,具体见STM32F1单片机-外部中断GD32的EXTI包括20个相互独立的边沿检测电路请求产生中断或事件,4位优先级配置寄存…

热像仪是如何工作的?

红外热像仪是一种非接触式设备,能够检测红外能量(热量)并将其转变成可见光图像。让我们深入了解红外热像仪的科学原理,以及借助红外热像仪我们能够看到的隐形世界。 捕捉红外波,而不是可见光 首先必须清楚的是&#…

windows环境下配置MySQL主从启动失败 查看data文件夹中.err发现报错unknown variable ‘log‐bin=mysql‐bin‘

文章目录 问题解决方法 问题 今天在windows环境下配置MySQL主从同步,在修改my.ini文件后发现MySQL启动失败了 打开my.ini检查参数发现没有问题 [mysqld] #开启二进制日志,记录了所有更改数据库数据的SQL语句 log‐bin mysql‐bin #设置服务id&#x…

Vue(13)——router-link

router-link vue-router提供了一个全局组件router-link(取代a标签) 能跳转,配置to属性指定路径(必须)。本质还是a标签。默认会提供高亮类名,可以直接设置高亮样式 右键检查,发现多了两个类: 可以直接写样式…

Java数据结构专栏介绍

专栏导读 在软件工程的世界里,数据结构是构建高效、可靠程序的基石。"Java数据结构"专栏致力于为Java开发者提供一个全面、深入的学习平台,帮助他们掌握各种数据结构的原理、实现及其在Java中的应用。通过这个专栏,读者将能够提升…

IPsec-Vpn

网络括谱图 IPSec-VPN 配置思路 1 配置IP地址 FWA:IP地址的配置 [FW1000-A]interface GigabitEthernet 1/0/0 [FW1000-A-GigabitEthernet1/0/0]ip address 10.1.1.1 24 [FW1000-A]interface GigabitEthernet 1/0/2 [FW1000-A-GigabitEthernet1/0/2]ip address

分布式Id生成策略-美团Leaf

之前在做物流相关的项目时候,需要在分布式系统生成运单的id。 1.需求: 1.全局唯一性:不能出现重复的ID。(基本要求) 2.递增:大多数关系型数据库(如 MySQL)使用 B 树作为索引结构。…

web前端-HTML常用标签-综合案例

如图&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document&…

mysql时间戳格式化yyyy-mm-dd

格式化到 年月日 # 将时间换成列名就行&#xff1b;当前是秒级时间戳&#xff0c;如果是毫秒的 / 1000即可 # SELECT FROM_UNIXTIME(1602668106666.777888999 / 1000,%Y-%m-%d) AS a; # SELECT FROM_UNIXTIME(列名 / 1000,%Y-%m-%d) AS a; SELECT FROM_UNIXTIME(1602668106.666…

Linux 系统进程理解——标识符,状态

目录 进程描述-pcb 并行与并发 概念&#xff1a; 课本概念&#xff1a;程序的一个执行实例&#xff0c;正在执行的程序等 内核观点&#xff1a;担当分配系统资源&#xff08;CPU时间&#xff0c;内存&#xff09;的实体 这短短的两行就概括了进程&#xff0c;但是进程的内在…