redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化

您所在的位置:网站首页 解决反序列化的信息泄露问题java redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化

2023-06-21 23:06| 来源: 网络整理| 查看: 265

keys命令:

DEL KEY:该命令用于在key存在时删除key

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_迭代

DUMP KEY:序列化给定key,并返回被序列化的值

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_数据库_02

序列化:把对象转化为可传输的字节的序列过程称为序列化

反序列化:把字节序列还原为对象的过程称为反序列化

为什么需要序列化?

序列化的最终目的是为了对象可以跨平台传输,和进行网络传输。而我们进行跨平台存储和网络传输的方式就是IO,而IO支持的数据格式就是字节数组。

因为我们单方面的只把对象转成字节数组还不行,因为没有规则的字节数组我们是没办法把对象的本来面目还原回来的,所以我们必须在把对象转成字节数组的时候就制定一种规则,即序列化,那么我们从IO流里面读出数据的时候再以这种规则把对象还原回来,即反序列化。

如果我们·要把一栋房子从一个地方运输到另一个地方去,序列化就是把房子拆成一个个砖块放在车子里,然后保留一张房子原来结构的图纸,反序列化就是我们把房子运输到目的地以后,根据图纸把一个个砖块还原成完整房子的过程。

什么时候使用序列化?

凡是需要进行跨平台存储的网络传输的数据,都需要进行序列化。

本质上存储和网络传输都需要经过把一个对象状态保存成一种跨平台识别的字节格式,然后其它的平台才可以通过字节信息解析还原对象信息

EXISTS KEY:检查给定key是否存在

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_数据库_03

EXPIRE KEY SECONDS:检查key设置过期时间,以秒计

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_redis_04

EXPIREAT KEY TIMESTAMP:EXPIREAT的作用和EXPIRE类似,都用于为key设置过期时间。不同在于EXPIREAT命令接收的时间参数是UNIX时间戳

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_序列化_05

PERPIRE KEY MILLISECONDS:设置key的过期时间以毫秒计

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_序列化_06

PERXPIPEAT KEY MILLISECOND-TIMESTAMP:设置KEY过期时间的时间戳-以毫秒计

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_redis_07

KEYS PATTERN:查找所有符合给定模式的key

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_数据库_08

MOVE KEY DB:将当前数据库的key移动到给定的数据库db中

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_redis_09

PERSIST KEY:移除key的过期时间,key将持久保持

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_数据库_10

TTL KEY:以秒为单位,返回给定KEY的剩余生存时间

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_迭代_11

RANDOMKEY:从当前数据库中随机返回一个key

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_迭代_12

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_数据库_13

RENAME KEY NEWKEY:修改key的名称

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_数据库_14

RENAMENX KEY NEWKEY:仅当newkey不存在时,将key改名为newkey

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_序列化_15

SCAN CURSOR [MATCH pattern][COUNT count]:迭代数据库中的数据库键

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_redis_16

Redis Scan 命令用于迭代数据库中的数据库键。

SCAN 命令是一个基于游标的迭代器,每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程。

SCAN 返回一个包含两个元素的数组, 第一个元素是用于进行下一次迭代的新游标, 而第二个元素则是一个数组, 这个数组中包含了所有被迭代的元素。如果新游标返回 0 表示迭代已结束。

相关命令:

SSCAN命令用于迭代集合键中的元素。HSCAN命令用于迭代哈希键中的键值对。ZSCAN 命令用于迭代有序集合中的元素(包括元素成员和元素分值)。

 

TYPE KEY:返回key所存储类型的值的类型

redis 缓存未清除,导致反序列化失败的原因 redis存储对象为什么序列化_迭代_17

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3