Redis第二课,1.set key value(设置对应的key和value)2.get key(得到value值)Redis全局命令(支持很多的数据结构)3.keys(用来查询当前

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Redis第二课,1.set key value(设置对应的key和value)2.get key(得到value值)Redis全局命令(支持很多的数据结构)3.keys(用来查询当前

因为redis本质是键值对结构。

1.set key value(设置对应的key和value)

2.get key(得到value值)

这里我们是没有这个key3的,所以他返回一个nil(null的含义)

Redis全局命令(支持很多的数据结构)

3.keys(用来查询当前服务器匹配的key)

通过一些特殊符号(通配符)来描述当前key的模型

如何查找key呢? pattern包含特殊符号的字符串,存在的意义,描述另外的服务器长啥样,?匹配任意一个字符,*匹配0个或多个字符。

*:保证的

?保证一个占位符,他就像是like里面的_

key复杂度O(N),生产环境一般禁止用keys命令,因为生产环境上key可能非常多,redis作为一个单线程的服务器,很容易执行keys*时间非常长,就会使redis服务器被阻塞了,无法给其他客户端提供服务。

redis常常用于缓存,redis挡在mysql前面,redis被keys*阻塞住,此时其他的查询redis操作就超时了,突然一大波请求过来,mysql也会挂

生产环境/线上环境

(办公环境/开发环境,测试环境也叫线上环境,外界用户无法无法访问,线上环境是外界用户能够访问到,一旦生产环境出问题,一定对用户的使用产生影响)

4.exist(判定key是否存在):判定key是否存在

Exist key[key ...]

网络通信->效率比较低

               ->成本比较高

hashMap中key唯一,但可以判定多个key,要是1个key则非0则1.

redis支持很多数据结构

自身这些键值对,是通过哈希表方式来组织的:

Redis具体的某个值,又可以数据结构

redis是一个客户端,服务器结构的程序,客户端和服务器之间通过网络来进行通信

进行网络通信,发送方发送一个数据,这个数据要从应用层,到物理层,层层封装(每一层协议都要加上报头或尾)->发一个快递,要包装,包好几层

del:删除指定的key,可以删一个或者多个

5.DEL   key  返回删掉的key的个数

redis主应用场景:缓存(数据库,消息队列),只是一个热点数据

(redis替mysql负重前行,redis没数据,大部分请求就直接打给mysql易把mysql搞挂)

6.expire作用给指定的key设置过期时间

注意:如果expire key 的键不存在,返回结果为0

如果过期时间为负值,键会立即被删除,犹如使用del命令一样

7.ttl key查看当前键的剩余时间

redis key过期策略的实现(面试题)

redis同时可能存在很多很多的key,这些key中可能很大一部分都有过期时间,此时redis怎么知道哪一部分过期被删除,哪些key还没过期呢?

倘若是直接遍历所有的key,显然是行不通的,效率非常低

redis的整体策略

1.定期删除

每次抽取一部分,进行验证过期时间,保证这个抽查过程足够快,

为啥对定期删除的时间,又明确要求呢?

因为Redis是单线程程序(主要的任务,处理每个命令的任务,刚才扫描过期的key)

如果扫描过期的key消耗的时间太多了,就可能会导致正常处理请求的命令被阻塞(类似于key* 这样的效果)

2.惰性删除

假设这个key到了过期时间,但是暂时未删除它,key还存在,紧接着后面又一次的访问,正好用到这个key,于是这次访问会让Redis触发删除key的操作,同时返回个nil

整体的效果一般仍有过期的key 未被删除,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
相关文章
|
28天前
|
存储 缓存 监控
Redis设计与实现——Redis命令参考与高级特性
Redis 是一个高性能的键值存储系统,支持丰富的数据类型(字符串、列表、哈希、集合等)和多种高级功能。本文档涵盖 Redis 的核心命令分类,包括数据类型操作、事务与脚本、持久化、集群管理、系统监控等。特别介绍了事务的原子性特性、Lua 脚本的执行方式及优势、排序机制、发布订阅模型以及慢查询日志和监视器工具的使用方法。适用于开发者快速掌握 Redis 常用命令及其应用场景,优化系统性能与可靠性。
|
30天前
|
存储 缓存 NoSQL
Redis中的常用命令-get&set&keys&exists&expire&ttl&type的详细解析
总的来说,这些Redis命令提供了处理存储在内存中的键值对的便捷方式。通过理解和运用它们,你可以更有效地在Redis中操作数据,使其更好地服务于你的应用。
202 17
|
1月前
|
消息中间件 NoSQL Linux
Redis的基本介绍和安装方式(包括Linux和Windows版本),以及常用命令的演示
Redis(Remote Dictionary Server)是一个高性能的开源键值存储数据库。它支持字符串、列表、散列、集合等多种数据类型,具有持久化、发布/订阅等高级功能。由于其出色的性能和广泛的使用场景,Redis在应用程序中常作为高速缓存、消息队列等用途。
310 16
|
1月前
|
JSON NoSQL Redis
在Rocky9系统上安装并使用redis-dump和redis-load命令的指南
以上步骤是在Rocky9上使用redis-dump和redis-load命令顺利出行的秘籍。如果在实行的过程中,发现了新的冒险和挑战,那么就像一个勇敢的航海家,本着探索未知的决心,解决问题并前进。
60 14
|
1月前
|
存储 NoSQL 算法
Redis设计与实现——数据结构与对象
Redis 是一个高性能的键值存储系统,其数据结构设计精妙且高效。主要包括以下几种核心数据结构:SDS、链表、字典、跳跃表、整数集合、压缩列表。此外,Redis 对象通过类型和编码方式动态转换,优化内存使用,并支持引用计数、共享对象和淘汰策略(如 LRU/LFU)。这些特性共同确保 Redis 在性能与灵活性之间的平衡。
|
1月前
|
消息中间件 NoSQL Unix
Redis的基本特性以及其基础命令用法
这只是冰山一角,Redis的强大功能和简洁的操作方法值得我们深入了解和掌握,是复杂数据问题解决的有力工具。所以,来一场有趣的Redis冒险吧!
104 6
|
3月前
|
缓存 NoSQL Redis
Redis如何优化频繁命令往返造成的性能瓶颈?
频繁的命令往返是Redis性能优化中需要重点关注的问题。通过使用Pipeline、Lua脚本、事务、合并命令、连接池以及合理设置网络超时,可以有效减少网络往返次数,优化Redis的性能。这些优化措施不仅提升了Redis的处理能力,还能确保系统在高并发情况下的稳定性和可靠性。
85 14
|
4月前
|
NoSQL 算法 安全
Redis原理—1.Redis数据结构
本文介绍了Redis 的主要数据结构及应用。
Redis原理—1.Redis数据结构
|
4月前
|
消息中间件 存储 NoSQL
java连接redis和基础操作命令
通过以上内容,您可以掌握在Java中连接Redis以及进行基础操作的基本方法,进而在实际项目中灵活应用。
213 30