Redis学习8:key通用指令操作、数据库通用指令操作

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: key的基本通用操作:删除 获取 查询是否存在及获取类型

key的基本通用操作:删除 获取 查询是否存在及获取类型


49c98dfdc2ef020e9b666a100873a940_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_15,color_FFFFFF,t_70,g_se,x_16.png

ba235ac79f3b8c051f0999daa41db3f2_6dace36a616643338079ab581e7b467a.png

7983196d380146bacdd9853f5f796135_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_13,color_FFFFFF,t_70,g_se,x_16.png

然后进行一个简单的判断和操作。

key的拓展操作:时效控制性


对于任意一个key都是可以设置其有效期的。

ef65b2113205a4cefa48e7c5bbb8e058_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_12,color_FFFFFF,t_70,g_se,x_16.png

在linux系统中一般使用时间戳来设置他的有效期。也就是expireat key timestamp。

如果ttl str得到的返回值是-2,那么就是代表这个东西已经不存在了。如果这个时候去获取get str,那么得到的就是nil了。

而如果没有设置时间,进行ttl str的一个操作,那么得到的就是一个-1.

pttl是配套使用的milliseconds使用的。

ttl可以返回三个有效值,-2 -1 和剩下的有效值。

key拓展操作:查询模式


keys pattern

keys *:就是查看所有的keys

key ?:匹配一个任意符号

af7eb68ff45de3705182d3051cb7aa64_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_18,color_FFFFFF,t_70,g_se,x_16.png

25d7d4f3503c9e242fbdaca5cb312c8e_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_13,color_FFFFFF,t_70,g_se,x_16.png

如果key以标准形式的命名的话,那么这些就会很方便我们进行一个获取操作。

key的其他操作



66fbada8fcb1f3cb2c0f155afb2c0efc_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_10,color_FFFFFF,t_70,g_se,x_16.png

f1daebf9e6a3b96a6c76e17aead9d3da_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_13,color_FFFFFF,t_70,g_se,x_16.png

改名操作第一个是会重复覆盖掉别人东西的!而第二个是会检查会不会存在。

如果存在,就不给改名。

423eb5ed154bd87c289d1554bb80f372_c9a618a78c7e4171a268e29febaaa64d.png


sort是对数据进行排序,但是并不会更改原始数据的。

sort aa desc就是逆序排序。

通过 help @generic就可以查询其他更多的操作。

数据库通用操作


面临的问题:

key可能会重复。

redis使用过程中,可能会大量数据重复了。

数据不区分种类、类别混在在一起,容易重复或者冲突。

解决方案:

redis为某个服务提供16个数据库,0-15.

每个数据库之间的数据相互独立。

数据库的基本操作


d4b4f8da7b2f3364f842d23230c4a0a5_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA572R5LqL6ZqP6aOOMjAxNw==,size_9,color_FFFFFF,t_70,g_se,x_16.png

62ceee0b7f94ccad25e234015e236942_8ec2b436d95c4801b69d8d76684c9f71.png


之前的操作其实是一直对0进行操作的。


echo abcd 就是类似打印日志


ping 就是类似调试联通是否有连接到服务器的


如果没有连接到服务器,检查是否有联通的,那么可以使用ping指令。


因为数据库分类了,那么数据也会有一些操作!


数据移动的操作


8834f5b7c78d9cb45a9104e701172362_84989655e4c94bf29b91475934977614.png


移动一个东西,前提是库里必须要有这个东西。

移动操作前也要搞清楚对面的库里有没有这个东西,如果有是不可以移动的。

数据清除操作

a20fedbfc95a7c5c6419123f303f22ae_d6402bb65c094653abd77276136d0970.png

flushdb是删除本库的命令

flushall是删除全部的库的命令 用不到的。

dbsize就是看数据库有多少个key。


相关实践学习
基于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
相关文章
|
13天前
|
消息中间件 缓存 NoSQL
Redis 高并发竞争 key ,如何解决这个难点?
本文主要探讨 Redis 在高并发场景下的并发竞争 Key 问题,以及较为常用的两种解决方案(分布式锁+时间戳、利用消息队列)。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
Redis 高并发竞争 key ,如何解决这个难点?
|
28天前
|
NoSQL Unix Redis
Redis 键(key)
10月更文挑战第15天
31 1
|
1月前
|
缓存 监控 负载均衡
如何解决Redis热点Key问题?技术干货分享
【10月更文挑战第2天】在Redis的使用过程中,热点Key问题是一个常见的性能瓶颈。热点Key指的是那些被频繁访问的Key,它们可能导致Redis服务器的负载不均衡,进而影响整体性能。本文将深入探讨热点Key问题的成因、影响以及多种解决方案,帮助读者在实际工作中有效应对这一挑战。
48 3
|
1月前
|
SQL NoSQL 关系型数据库
数据库学习
【10月更文挑战第8天】
21 1
|
1月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
61 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
1月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
67 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
1月前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
25 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
1月前
|
关系型数据库 MySQL 数据库
mysql关系型数据库的学习
mysql关系型数据库的学习
18 0
|
NoSQL 测试技术 Redis
Redis指令与数据结构(二)
0、Redis目录结构       1)Redis介绍及部署在CentOS7上(一)       2)Redis指令与数据结构(二)       3)Redis客户端连接以及持久化数据(三)       4)Redis高可用之主从复制实践(四)       5)Redis高可用之哨兵模式Sentinel配置与启动(五)       6)Redis高可用之集群配置(六)   一、前言 上一篇介绍了《Redis介绍及部署在CentOS上》,相必大家对redis有一定的了解了,Redis使用的场景非常的多,比如 之前 手机营销活动的秒杀等。
899 0
|
1月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
74 6