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

embedded/2024/9/21 8:43:21/

通用命令

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 endlrange 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.ppmy.cn/embedded/114518.html

相关文章

setImmediate() vs setTimeout() 在 JavaScript 中的区别

setImmediate() vs setTimeout() 在 JavaScript 中的区别 在 JavaScript 中,setImmediate() 和 setTimeout() 都用于调度任务,但它们的工作方式不同。 JavaScript 的异步特性 JavaScript 以其非阻塞、异步行为而闻名,尤其是在 Node.js 环境…

安全热点问题

安全热点问题 1.DDOS2.补丁管理3.堡垒机管理4.加密机管理 1.DDOS 分布式拒绝服务攻击,是指黑客通过控制由多个肉鸡或服务器组成的僵尸网络,向目标发送大量看似合法的请求,从而占用大量网络资源使网络瘫痪,阻止用户对网络资源的正…

计算机网络 8.*结构化布线

第八章 结构化布线 第一节 结构化布线基础 一、认识结构化布线 1.定义:在建筑物或楼宇内安装的传输线路,是一个用于语音、数据、影像和其他信息技术的标准结构化布线系统。 2.任务:使语音和数据通信设备、交换设备和其他信息管理系统彼此相…

在Ubuntu 16.04上使用rbenv安装Ruby on Rails的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 Ruby on Rails 是开发人员创建网站和 Web 应用程序时最受欢迎的应用程序堆栈之一。Ruby 编程语言与 Rails 开发框架相结合&#x…

Spring Boot中的响应与分层解耦架构

Spring Boot中的响应与分层解耦架构 在Spring Boot框架中,响应与分层解耦架构是两个核心概念,它们共同促进了应用程序的高效性、可维护性和可扩展性。下面将详细探讨这两个方面,包括Spring Boot的响应机制、分层解耦的三层架构以及它们在实际…

挖矿病毒排查演示

1、上传病毒文件到/opt目录中 2、把压缩文件名修改成virus.zip 3、检查一下/etc/passwd ​ root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:…

【Webpack--013】SourceMap源码映射设置

🤓😍Sam9029的CSDN博客主页:Sam9029的博客_CSDN博客-前端领域博主 🐱‍🐉若此文你认为写的不错,不要吝啬你的赞扬,求收藏,求评论,求一个大大的赞!👍* &#x…

Dubbo3序列化安全问题

序列化安全 在 Dubbo 3.0 中,序列化协议的安全性得到了加强。 1. 序列化安全性升级 Triple 协议: 推荐使用 Triple 协议 的非 Wrapper 模式,该模式在安全性上更为严格。需要开发人员编写 IDL(接口描述语言)文件,这虽…