redis-学习笔记(通用命令)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: redis-学习笔记(通用命令)

redis-cli

打开 redis 自带的命令行客户端

redis-cli --raw

显示中文格式的 打开 redis 自带的命令行客户端

redis 是读存数据不进行会格式转换, 简单说就是什么格式存就是什么格式取, 因此读取数据的时候会以二进制格式输出汉字

不使用 --raw 则会, 以十六进制的格式显示中文字符 “\xd6\xd0”

set key value – O(1)

设置 key 值 和 value 值 (键 值 对)

get key – O(1)

根据 key 来取 value 值

默认使用 字符串类型, 此处 key 和 value 加不加 引号, 单引号还是双引号, 看你心情, 因为不影响, 都会被识别为 字符串格式

keys pattern – O(N)

模式(通配符)匹配

(没事别乱用, redis 一般是替 MySQL 负重前行的, 生产模式下[正式工作], 一个 Redis 中贼拉多数据, 你扫一遍其他任务还做不做了, 查询 redis 失败后, 会去直接查询数据库(MySQL …), 大量任务一涌入, MySQL 就寄了, 年终奖也就寄了)

exist key [key …] – O(N)

判定 key 值是否存在, 可公式判断多个

返回的值是上述判断 key 值的存在个数

del key [key …] – O(N)

删除指定 key, 删了key,该 key 对应的 value 自然也不存在了

同理, 返回删除成功 的个数


expire key seconds 秒 / pexpire key 毫秒 – O(1)

expire 作用是给指定的 key 设置过期时间 - key存货时间超出这个数值, 就会自动删除

ttl key – O(1)

ttl 查询过期时间 (time to live)

redis 的 key 的过期策略是怎么实现的?

一个 redis 中会同时存在很多 key, 这些 key 中可能有很大一部分有过期时间.

此时, redis 服务器如何知道哪些 key 已经过期要被删除, 哪些 key 还没过期.

整体策略如下:

  1. 定期删除
    每次抽取一部分, 进行验证过期时间
    保证整个抽取检查的过程足够快
    (因为如果扫描过期 key 消耗的时间太多, 会导致正常处理请求命令被阻塞)
  2. 惰性删除
    到了过期时间, 还不会被删除,
    只有当被访问到, 会让 redis 触发删除 key 的操作, 再返回一个 nil
  3. 定时删除

在设置 key 过期时间的同时, 为该 key 创建一个定时器, 让定时器在 key 的过期时间来临时, 对 key 进行删除.

(但是如果在过期时间来临前, 来了一个时间很长的请求, 你就会错过这次删除时间, 导致它活了更长时间)

redis 并没有采取 定时器 的方式来实现过期 key 删除

如果有多个 key 过期, 也会通过一个 定时器(基于优先级队列或者时间轮) 来高效 / 节省 cpu 的前提下来处理多个 key

– 基于优先队列: 定期检查队首元素, 队首没过期, 其他的肯定就都没过期

– 基于时间轮: 将时间分为很多段, 每个小段上挂一个链表, 链表上代表该任务在该时间内运行


type key – O(1)

type 返回 key 对应值 的类型

value 对应的格式: none , string , list , set , zset , hash , stream

object encoding key – O(1)

查看 key 对应的 value 的编码方式

当数据大小不同时, 即使是同一类型的数据存储, 他们的底层编码方式也不一样

flushall

删除 redis 上的所有键值对

也会带走你的年终奖 (不是)

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
打赏
0
0
0
0
37
分享
相关文章
Redis是如何建立连接和处理命令的
本文主要讲述 Redis 是如何监听客户端发出的set、get等命令的。
1268 160
java连接redis和基础操作命令
通过以上内容,您可以掌握在Java中连接Redis以及进行基础操作的基本方法,进而在实际项目中灵活应用。
110 30
|
5月前
|
redis的基本命令,并用netty操作redis(不使用springboot或者spring框架)就单纯的用netty搞。
这篇文章介绍了Redis的基本命令,并展示了如何使用Netty框架直接与Redis服务器进行通信,包括设置Netty客户端、编写处理程序以及初始化Channel的完整示例代码。
125 1
redis的基本命令,并用netty操作redis(不使用springboot或者spring框架)就单纯的用netty搞。
Redis如何解决频繁的命令往返造成的性能瓶颈!
Redis如何解决频繁的命令往返造成的性能瓶颈!
|
4月前
|
Redis命令:列表模糊删除详解
通过本文的介绍,我们详细探讨了如何在Redis中实现列表的模糊删除。虽然Redis没有直接提供模糊删除命令,但可以通过组合使用 `LRANGE`和 `LREM`命令,并在客户端代码中进行模糊匹配,来实现这一功能。希望本文能帮助你在实际应用中更有效地操作Redis列表。
159 0
|
5月前
|
Redis命令:列表模糊删除详解
Redis命令:列表模糊删除详解
140 3
Redis 命令
10月更文挑战第15天
65 0
Redis应用—8.相关的缓存框架
本文介绍了Ehcache和Guava Cache两个缓存框架及其使用方法,以及如何自定义缓存。主要内容包括:Ehcache缓存框架、Guava Cache缓存框架、自定义缓存。总结:Ehcache适合用作本地缓存或与Redis结合使用,Guava Cache则提供了更灵活的缓存管理和更高的并发性能。自定义缓存可以根据具体需求选择不同的数据结构和引用类型来实现特定的缓存策略。
Redis应用—8.相关的缓存框架
Redis,分布式缓存演化之路
本文介绍了基于Redis的分布式缓存演化,探讨了分布式锁和缓存一致性问题及其解决方案。首先分析了本地缓存和分布式缓存的区别与优劣,接着深入讲解了分布式远程缓存带来的并发、缓存失效(穿透、雪崩、击穿)等问题及应对策略。文章还详细描述了如何使用Redis实现分布式锁,确保高并发场景下的数据一致性和系统稳定性。最后,通过双写模式和失效模式讨论了缓存一致性问题,并提出了多种解决方案,如引入Canal中间件等。希望这些内容能为读者在设计分布式缓存系统时提供有价值的参考。感谢您的阅读!
130 6
Redis,分布式缓存演化之路
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
206 85

热门文章

最新文章