七天玩转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认识与环境配置的主要内容,如果未能解决你的问题,请参考以下文章