七天玩转Redis | Day1Redis认识与环境配置

Posted 灰小猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了七天玩转Redis | Day1Redis认识与环境配置相关的知识,希望对你有一定的参考价值。

号外号外🎉🎉🎉:小猿和CSDN联合推出的“七天玩转Redis,打卡还能领周边”活动开始啦!点击查看👉🏻报名及活动细则👈🏻,轻轻松松和小伙伴们一起拿奖励吧!

PS:零基础也能入门Redis哟,快去一起参与拿周边吧!

博主简介👨🏼‍⚕️:国内某一线互联网公司Java工程师👨🏼‍💻,业余自媒体创作者💻,CSDN博客专家🏆,Java领域优质创作者📕,华为云享专家🥇,华为HDZ核心成员👨‍💼,曾发表并出版ISEAE信息科学国际论文,全网累计发表技术博客60余万📒,公众号【码猿编程日记】作者,坚信每一次敲动键盘都能让生活变得更智能,世界变得更有趣!

课前答疑:很多小伙伴问我零基础或者根本没有使用过Redis,可以学习嘛?当然是可以的!充分考虑到小伙伴们的学习程度有所不同,所以本次课程的所有操作都是在Windows环境下进行的,不会依赖太多的环境配置,且上手容易。已经学习过Redis的小伙伴们同样可以再学习一遍,温故而知新,还能拿CSDN定制周边!何乐而不为呢😀

今日学习内容

因为今天是我们“七天玩转Redis”课程的第一天,所以今天学习的主要内容就是:认识Redis和它的主要作用和使用场景,在自己的电脑上安装Redis,最后再学习几个基本的命令操作就可以啦!

难度系数:⭐⭐

学习完成之后别忘记及时打卡哟!

一、认识Redis

学习Redis之前当然要知道什么是Redis了,如果不知道Redis的小伙伴们,mysql应该知道吧?MySQL应该是我们很多人接触的第一个关系型数据库,除此之外,常见的关系型数据库还有SQL Server、Oracle、SQLite等,

事物的存在都是具有相对性的,那么既然有关系型数据库,那么就一定会有非关系型数据库啦,没错,Redis就是一个最典型的非关系型数据库,还有之后可能会用到的MongoBD数据库也是非关系数据库,

(1)关系型数据库与非关系型数据库

那么问题来啦!

关系型数据库和非关系型数据库有什么区别呢?

  • 1、数据存储方式不同:关系数据库为表格形式,非关系数据库为文档或图结构
  • 2、扩展方式不同:关系数据库可纵向扩展,可提高处理能力,非关系数据库为天然分布式,通过更多的数据服务器来分担负载
  • 3、事务处理支持不同:关系数据库善于处理事务原子性细粒度控制,方便事务回滚,非关系数据库着重于处理大数据。且一般不保证遵循ACID原则(即原子性、一致性、隔离性、持久性)

Redis的全称叫“Remote Dictionary Server”,翻译过来就叫“远程字典服务”,所以我们可以换个思路来理解一下Redis数据库,就像我们拿字典去查字是一样的,我们会先去找这个字对应的索引,每一个索引都对应一个唯一的字。Redis就是这样的一个存储思路。Redis中的数据是以key-value的形式存储的,其中的key(键)就相当于字典中字的索引,value(值)就相当于字典中索引对应的字。所以Redis中数据的存储原理,其实就是一个一个的key-value键值对!因此Redis又可以被叫做key-value数据库。

而key-value数据库就是非关系型数据库的一个分类。它的特点是具有极高的并发读写性能,能够适用于高性能并发读写的场景,一般也会用作数据缓存。

除此之外,非关系型数据库还包括:面向海量数据访问的面向文档数据库、面向搜索数据内容的搜索引擎、面向可扩展性的分布式数据库。关于其他这几种数据库的特点,我在这一就不一一赘述啦,小伙伴们可以把它作为这篇文章的一个课后作业去总结一下,我们这篇文章主要还是以讲Redis为主啦!

(2)Redis的主要使用场景

我们现在知道了,Redis具有极高的并发读写性能,那么Redis数据库在实际的开发中都有哪些使用场景呢?

我们根据Redis的特点来对它的使用场景简单划分一下,你就会发现Redis可以做的事情其实还是非常多的。

  • 高性能高并发
    • 做数据缓存,在查询数据库之前,先去Redis中查找缓存,可以减少查阅数据库的时间,
    • 秒杀系统
  • 丰富的数据格式
    • 省市区表、字典表、地图站点
    • Set集合,可用于查找两个人的共同好友
  • 单线程
    • 分布式锁
  • 自动过期
    • 做短信验证码
    • 具有时间限制的商品显示

上面的使用场景,只是我根据Redis的特点简单的罗列出了几个,后面的文章中我也会和大家介绍Redis在一些场景中的具体使用,当然Redis的使用场景肯定不仅限于这些,其他的还需要根据实际应用场景去使用啦!

现在我们知道了Redis是什么,能做什么,接下来就是Redis怎么用的问题了,因为考虑到很多小伙伴们是第一次接触Redis,没有Linux环境,所以我们在Windows环境下讲解Redis的使用,其实和Linux环境下基本是一样的。

二、Windows环境下安装Redis

Windows环境下安装Redis非常简单,首先去Redis的官网下载Redis的安装包,

Redis的Windows版本官方下载地址https://github.com/tporadowski/redis/releases

直接下载zip格式的压缩包

解压之后得到如下的文件目录:

其中几个比较常用的文件,我已经在图片中给大家标注出来了,

使用命令行方式运行Redis

接下来就是启动一下Redis,看一下下载解压的文件是否有问题了,常用的启动Redis的方式是通过命令行的方式,

打开cmd命令行,切换到Redis的目录下,运行如下命令即可:

redis-server.exe redis.windows.conf

启动之后。如果看到如下这样的界面,说明你的Redis安装成功了,这也意味着现在Redis服务已经在你的电脑上运行着了,

 这个时候Redis其实就已经安装好了,有小伙伴可能会有疑问啦,难道就这么简单吗?是的!没错!就是这么简单,直接解压就能用!

但是需要注意!!!

这个时候这个命令行窗口不能关闭,一旦关闭,你的Redis服务就停止了,之后也就无法使用客户端进行Redis操作了,所以之后在进行Redis相关操作的时候,上面这个窗口也是一定要开着的!!!

三、Redis常用命令解析

(1)启动Redis客户端

在Redis服务器页面打开的前提下,我们再打开一个新的cmd命令行,切换到Redis的目录下,运行如下命令,即可启动我们的Redis客户端,我们之后所做的所有操作,都是在这个客户端界面上进行的,

redis-cli.exe -h 127.0.0.1 -p 6379

解释一下上面这样命令的含义,

  • redis-cli.exe -p 6379表示我们的Redis客户端界面
  • -h 表示IP地址,127.0.0.1为本地地址的意思
  • -p表示端口号,6379为Redis的默认地址

至于Redis的默认端口号为什么是6379,我建议小伙伴们可以作为一个课后作业去查阅一下,这背后可是有一个很有趣的故事的,相信看了之后你肯定就永远的记住Redis的默认端口号啦!

(2)Redis常用命令解析

接下来我们来介绍几个Redis中比较常用的命令,建议小伙伴们在命令行中一个一个的去实验一下,

这里分享一个小技巧:在Redis的命令行中,输入命令的前几个字母,按Tab键,可以自动补全整个命令,

Redis数据库切换

Redis默认其实是有16个数据库的,而我们上面启动之后,它默认的是第0个数据库,那么我们可以通过select命令来切换数据库,比如我们切换到6号数据库,

127.0.0.1:6379> SELECT 6
OK
127.0.0.1:6379[6]>

 如上这样,我们就可以在接下来的命令前看到有一个“[6]”的标识,这样就表示当前是第6号数据库,注意默认的第0个数据库前面是不显示的,

输入与获取数据

我们最开始的时候就知道了,Redis数据库中的数据是以key-value的形式存储的,那么我们在输入数据的时候,当然就需要以key value的形式输入了,

Redis中输入和获取值的最基本的命令是SET和GET命令,

输入数据的命令格式为:

SET key value

  • key为你输入的这个值对应的索引
  • value为你输入的值

如我们设置一个索引为“mykey”,值为“huixiaoyuan”的的键值对。

127.0.0.1:6379> SET mykey huixiaoyuan
OK
127.0.0.1:6379>

显示OK就说明键入成功!

获取你输入的值的命令为:

GET key

  • key为你之前输入的值所对应的索引,也就是键

如我们想要获取刚才输入的mykey-huixiaoyuan,那么直接运行如下命令,,就可以获取到我们输入的键值对的值,如果Redis数据库中不存在该键值对,那么就会返回null。

127.0.0.1:6379> GET mykey
huixiaoyuan
127.0.0.1:6379> GET mykey2
(nil)
127.0.0.1:6379>

获取全部数据

上面我们讲了一个通过get的方式来获取一个索引对应的值,那么如果我们的数据库中有很多条数据,想要获取全部数据应该怎么做呢?

其实也简单,我们只需要使用keys * 命令即可,但是需要注意的就是,该方法只是获取到所有的数据的索引,并不会显示对应的值。

获取数据库中全部数据

KEYS *

127.0.0.1:6379> KEYS *
1) "mykey"
2) "mykey3"
3) "mykey2"
127.0.0.1:6379>

清除部分或全部数据

我们上面提到了Redis中是有16个数据库的,那么如果想要删除其中一个数据库中的数据,或者删除所有数据库的数据,应该怎么做呢?

首先是删除一个数据库中的全部数据,

我们可以使用SELECT命令切换到这个数据库,然后在该数据库下使用FLUSHDB命令即可

清除一个数据库中的全部数据

FLUSHDB

这个时候你再去get我们之前输入的值就会返回null了!

127.0.0.1:6379> FLUSHDB
OK
127.0.0.1:6379> get mykey
(nil)

清除所有数据库的全部数据

清除所有数据库的全部数据所使用的命令是FLUSHALL,从命令的英语翻译上我们就可以看到它是清除全部的意思,使用这个命令后,它会把Redis的16个数据库中的所有数据全部清空,所以在公司或者开发的时候一定要慎用哈!

清除所有数据库的全部数据

FLUSHALL

127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379> get mykey
(nil)

随机获取一个key

如果想要从当前数据库已经存在的key里面,随机的返回一个key,那么我们可以使用RANDOMKEY命令,它将会返回一个随机的key名称

随机获取一个key

RANDOMKEY

127.0.0.1:6379> RANDOMKEY
"mykey"
127.0.0.1:6379> RANDOMKEY
"mykey"
127.0.0.1:6379> RANDOMKEY
"mykey2"

当然,如果你的数据库中的key比较少的情况下,建议多执行几次命令,才会出现随机的效果。

获取指定key对应值的类型

Redis中有五种基本数据类型,分别是Sting型、List型、Hash型、Set型、Zset型,关于这五种基本数据类型的使用我会在下一篇文章和大家讲解,但是现在如果你想要获取一个指定key的数据类型,那么可以怎么获取呢?

方法也是很简单的,类型的英语是“type”,那么我们可以直接使用TYPE key命令来获取,

获取指定key对应的值的数据类型

TYPE key

比如我们获取之前输入的mykey对应的值的数据类型。

127.0.0.1:6379> TYPE mykey
string
127.0.0.1:6379>

删除指定key及其value

上面我们都是讲了如何设置和获取key及其value,那么如果这个键值对我们不想要了,应该如何删除呢?也是很简单,我们可以直接使用DEL key命令,

删除指定key及其value

DEL key

比如我们现在要删除key为mykey2的索引,及其所对应的value,那么就可以直接使用下面的命令,如果删除成功,那么就会返回删除的键值对的个数,再次获取这个key就会返回null,如果这个key根本就不存在的话,你直接去删除会返回0.

127.0.0.1:6379> DEL mykey2
(integer) 1
127.0.0.1:6379> GET mykey2
(nil)
127.0.0.1:6379> DEL mykey2
(integer) 0
127.0.0.1:6379>

今日总结

以上就是今天学习的主要内容,最主要的是需要掌握关系型数据库和非关系型数据库的主要区别了解Redis的主要使用场景和基本的操作命令即可啦!这也是在面试的时候很多面试官都比较爱问的问题!!!

最后别忘记今天的打卡哟!【点击查看活动打卡方式

在学习中存在任何问题的,大家都可以添加我的微信huixiaoyuan1030,(因为微信群二维码有效期只有七天😝),加入我们的“打卡答疑交流群”一起抱团、一起进步!

点击下方卡片可以找到我的联系方式,👇🏻👇🏻👇🏻

以上是关于七天玩转Redis | Day1Redis认识与环境配置的主要内容,如果未能解决你的问题,请参考以下文章

七天玩转Redis | Day1Redis认识与环境配置

七天玩转Redis | Day1 Redis认识与环境配置

七天玩转Redis | Day1 Redis认识与环境配置

七天玩转Redis | Day1 Redis认识与环境配置

七天玩转Redis | Day7 Redis常见面试题及课程总结

七天玩转Redis | Day7 Redis常见面试题及课程总结