极致性能的数据库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的类型。

相关推荐
Coder个人博客13 小时前
Linux6.19-ARM64 mm mmu子模块深入分析
大数据·linux·车载系统·系统架构·系统安全·鸿蒙系统
剩下了什么15 小时前
MySQL JSON_SET() 函数
数据库·mysql·json
山峰哥15 小时前
数据库工程与SQL调优——从索引策略到查询优化的深度实践
数据库·sql·性能优化·编辑器
较劲男子汉16 小时前
CANN Runtime零拷贝传输技术源码实战 彻底打通Host与Device的数据传输壁垒
运维·服务器·数据库·cann
java搬砖工-苤-初心不变16 小时前
MySQL 主从复制配置完全指南:从原理到实践
数据库·mysql
WangYaolove131417 小时前
基于python的在线水果销售系统(源码+文档)
python·mysql·django·毕业设计·源码
山岚的运维笔记18 小时前
SQL Server笔记 -- 第18章:Views
数据库·笔记·sql·microsoft·sqlserver
财经三剑客18 小时前
AI元年,春节出行安全有了更好的答案
大数据·人工智能·安全
岁岁种桃花儿18 小时前
Flink CDC从入门到上天系列第一篇:Flink CDC简易应用
大数据·架构·flink
TOPGUS18 小时前
谷歌SEO第三季度点击率趋势:榜首统治力的衰退与流量的去中心化趋势
大数据·人工智能·搜索引擎·去中心化·区块链·seo·数字营销