极致性能的数据库Redis之基础概念及通用命令讲解

目录

[1. 什么是Redis](#1. 什么是Redis)

[2. 登入Redis](#2. 登入Redis)

[3. get与set](#3. get与set)

[3.1 set](#3.1 set)

[3.2 get](#3.2 get)

[4. keys](#4. keys)

​编辑

[5. exists](#5. exists)

[6. del](#6. del)

[7. expire](#7. expire)

[8. ttl](#8. ttl)

[9. type](#9. type)


1. 什么是Redis

Redis 是一个开源的内存数据存储系统,常被用作缓存、数据库或消息队列。它把数据放在内存里,读写速度非常快,支持字符串、列表、哈希、集合等多种数据结构,使用简单,性能出色。在很多需要快速响应和高并发处理的应用中,比如网站缓存、用户会话管理或实时排行榜,都能看到 Redis 的身影。

一般来说我们的数据库可以能会用多种数据库系统。比如说Redis加上MySQL,前者用来储存那些经常会被访问到的数据或者一些临时数据。MySQL则用来存储那些不经常被访问到的数据和其他大量的数据。这是由于他们自身的性质导致的。

2. 登入Redis

我们选择在Linux系统下登入Redis,这个一方面是因为Redis和Windows的兼容性不那么好,另一方面是为了更好的学习Redis。

语法:

sql 复制代码
​redis-cli

输入这行代码之后当我们看到下面这行提示框的时候,就代表我们登入Redis成功了。

3. get与set

3.1 set

首先我们需要明白这个Redis是KV结构的,也就是我们常说的hash结构,所以我们在创建的时候也是按照这个结构来处理的。

set的话就是在创建这个数据以及建立映射关系。

语法:

sql 复制代码
set key value

这个value是我们实际存放的值,而这个key这是用来帮助我们找到这个value的。

3.2 get

这个get的话就是在通过key来读取我们的数据。

语法:

sql 复制代码
get key value

我们通过这个get就可以得到我们所存放的value值。

4. keys

这个keys的话这是用来获取一定范围内的key值,不是用来获取value的。

语法:

sql 复制代码
keys 需要查找的key
通配符 含义 示例 匹配结果说明
* 匹配任意数量的任意字符(包括 0 个) user:* 匹配 user:1user:123:infouser:
? 匹配单个任意字符 user:? 匹配 user:1user:a,不匹配 user:12
[] 匹配括号内的单个字符 user:[123] 匹配 user:1user:2user:3
[a-b] 匹配指定范围的单个字符 user:[a-z] 匹配 user:auser:z,不匹配 user:1
[^] 匹配括号内除外的单个字符 user:[^12] 匹配 user:3user:a,不匹配 user:1user:2

我们先set了三个key,分别是hello,hallo和hlo。接着我们看下面这张图,下面就是keys的使用。

时间复杂度:O(N),这个N是我们输入的key的数量

返回值:匹配 pattern 的所有 key。

5. exists

exists判断某个 key 或者一些key是否存在,然后返回搜索的key存在的数量。

语法:

sql 复制代码
exists 要判断的key

它的时间复杂度为O(1),这个也很好理解,因为他是hash结构的。Redis的很多操作都是支持一次处理多个的,这是因为它每一次的数据请求都是在网络上进行的,然后我们也知道网络上进行这样的操作的话速度是比较慢的,然后Redis为了加快速度,于是就允许一次处理多个key值。

6. del

del就是用来删除指定的 key。(在数据库中删除操作永远都要小心)

语法:

sql 复制代码
del 要删除的key

我们看下面这张图片,原本的hello这个key就这样被我们删除了。del的返回值是被删除了的key的数量。它的时间复杂度也是O(1)。

7. expire

expire就是为指定的 key 添加秒级的过期时间,当这个时间到了之后,这个可以我们就没有办法访问了。这个的使用场景很广泛比如说我们登入一些网站时的验证码什么的都是有有效时间的,他们都是采用了这一种方式。
语法:

sql 复制代码
expire 要设置时间的key 设置的具体秒数

我们看下面这张图,我们给它设置了8秒的时间,然后当8秒之后这个key我们就没有办法访问了,因为他已经被Redis给删除了。

expire的返回值:1 表⽰设置成功 0 表⽰设置失败

时间复杂度:O(1)

8. ttl

ttl用来获取指定 key 的过期秒数。(是还没有过期的,已经过期的就无法查看了)

语法:

sql 复制代码
ttl 要查看的key

我们看下面这张图片。当这个bb被删除之后再用ttl来进行查询就会返回-2,代表没有查询到。

时间复杂度:O(1)

返回值:剩余过期时间。-1 表⽰没有关联过期时间,-2 表⽰ key 不存在。

9. type

type用来返回 key 对应的数据类型,也就是value的类型。在Redis中有各种各样的数据类型,这个我们在后面的文章中或一一讲解。

语法:

sql 复制代码
type 要查看类型的那个key值

我们看下面这张图,我们前面也说了,type查看的是value的类型,那么为什么我们在这里的bb和2的结构都是string呢?这是因为在Redis中我们看起来输入的是bb和2,但实际上是"bb"和"2",所以在这里就是string的类型。

相关推荐
0xDevNull22 分钟前
MySQL数据冷热分离详解
后端·mysql
科技小花38 分钟前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸40 分钟前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
2501_9481142440 分钟前
2026年大模型API聚合平台技术评测:企业级接入层的治理演进与星链4SAPI架构观察
大数据·人工智能·gpt·架构·claude
D4c-lovetrain41 分钟前
linux个人心得22 (mysql)
数据库·mysql
黎阳之光1 小时前
黎阳之光:视频孪生领跑者,铸就中国数字科技全球竞争力
大数据·人工智能·算法·安全·数字孪生
阿里小阿希1 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神1 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员2 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java2 小时前
Redis简单应用
数据库·spring boot·tomcat·maven