Redis 的基本使用 | 学习笔记

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 快速学习 Redis 的基本使用

开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程Redis 的基本使用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/626/detail/9784


Redis 的基本使用

 

内容介绍

一、Redis 的启动

二、Redis 的基本指令

三、快速入门

 

一、Redis 的启动

这个非常简单。在这里直接双击一下启动 Redis 的服务器端程序(redis-server.exe)。双击过后这个服务就不要关闭了。

image.png

这里写的很清楚。The server is now ready to accept connections on port 6379. 现在看这个已经非常熟悉了。因为 accept 和端口以及链接是什么意思不会是一点概念都没有了。这说明前面的基础知识还是很重要的,尤其是对于第一次学习编程的同学。就相当于可以理解成上次写的 server,其实本质是相同的。然后有了 go,这就能启动起来。

image.png

这个示意图也已经讲过就不再多说。启动起来以后把这个客户端也一起起来。

image.png

目前用 redis-cli 去操作,就先不使用 go 语言。因为先用 redis-cli 把基本的指令学完了,再去用 go 语言去连,其实就是顺理成章的事情。那现在再去启动一下 cli 端。这个 cli 端已经把它要操作的端口配置好,所以双击就有点类似于启动的 cli go。因为是本地,所以一次就连上了。它的意思就是说已经连接到了本地的 IP 6379这个端口。如果把服务器或者是客户端关掉,这个链接是双向的,两者肯定就都不行。启动起来之后再看基本指令。

 

二、Redis 的操作指令

网上有一个站点为 redisdoc.com。这里面就把 redis 的指令或者为命令全部都写出来。如果把它放在 java 中讲至少要两到三天。这块因为是 go 语言所以主要是解决怎样往里面存和取的问题。这个就讲一些最核心的就可以了。打开 redisdoc.com 这个站点看一下它的指令有哪些。

image.png

image.png

image.png

它的指令参考有很多,可以用 CTRL+F 来快速查找。最左边是 key 的操作,其实就是指的 key 有哪些指令。旁边是字符串(string),字符串对应的就是 key-val。如果想通过 redis-cli .exe 这个指令给 redis 核心组件,让它帮助去存放一个 key value,那它的指令就在这里查找。比如 APPEND,GET,INCR,MGET 一次获取多个 key,MSET 一次设置多个 key value 等都在这里去找。那么如果想通过指令对哈希,按照哈希的形式存放数据就在哈希表里找指令。HDEL,HGET,HLEN 还有 HSET。这个就是对哈希这种数据结构的存储,相当于以哈西的形式来存放。那么如果想学习 List(列表)的形式就在相应的一栏寻找指令。有序集合一般是以 Z 打头的。数据只有 String(字符串)、哈希、List、集合和有序集合这五大数据类型。另外 Redis 还有其他服务。例如发布/订阅、事务、脚本、连接,包括服务这边的启动连接,比如切数据库都在这里。还有一些相关的文档。学完之后往里面存任何一种数据都可以,怎么取也能解决了。至于其他的在项目的使用过程中再加深一下就可以了。这个基本介绍要有一个基本认识。这是 Redis 的安装和基本使用做一个概述。

 

三、快速入门

Redis 安装好后,默认有16个数据库,这16个数据库是用标号来标识的,编号是0到15一共16个。

它的操作数据都是指的对内存数据的操作。这个是非常有用的,在做开发的时候不可避免地会用到。在做开发的时候不用数据库这是不可能的,只是多少的问题。依次来演示一下。

1、添加 key-val[set]

打开客户端输入 set 指令,这个 set 后面可以带 key-value,后面中括号的部分代表其他信息,比如超时了多少时间。这些如果不需要可以不用管。127.0.0.1:6379>set key1 hello 先写一个 key1,值是 hello,这个中括号不写可以不管它,一回车就完成了。这个指令就是往里面添加 key-value。Key 的名字就叫 key1,值就叫 hello。这就是它的一个 set。127.0.0.1:6379>get key1 hello 获取是 get key1,这样就把 hello 得到了。刚才这个指令一执行过后就应该在脑海里想像到它是如何执行的。比如刚才写了一个 set key1 hello,一回车它就通过网络把这个数据发送给 redis 的核心组件。这个核心组件拿到后发现是 set 指令,于是它就会在内存里面存放 key1 hello这样一个数据,当然这个时候数据库默认是0号数据库,因为一共是16个数据库。此时数据已经被存放到内存里面去了,就是这样一个逻辑。如果要取的话就是 get key1。还是把指令发送给 redis 的核心组件,它就会找到 key1并把 hello 返回来。就这样一个简单的过程。

2、查看当前 Redis 的所有 key[keys

3获取 key 对应的值[get key]

4、切换 redis 数据库[select index]

如果不想在0号数据库,用第二个数据库也是可以的。

127.0.0.1;6379>select 1   127.0.0.16379[1]>get key1  这个时候就切换到1号数据库了。对此可以这样想象在它的里面有16份内存,有一份是0号,还有一份是1号,还有一份是15号。这个时候里面是空的,就这个数据库里面的内容是空的。如果没有的话,要是获取肯定是不行的,get key1 是个空的。

127.0.0.1:6379[1]>select 0  127.0.0.1:6379>get key1 hello

再切回到0号,再 get key1 就拿到了。这个很好理解,来回可以切换。

5、如何查看当前数据库的 key-val 数量[dbsize]

127.0.0.1:6379>dbsize 1

127.0.0.1:6379>set key2 say

127.0.0.1:6379>dbsize 2

默认是当前数据库,回车。现在只有一对 key value,假设再加一个 set key2,这时候再看 dbsize。这时候会返回一个2,有两对。

6、清空当前数据库的 key-val 和清空所有数据库的 key-val[flushdb flushall]

清空指令是 flushdb。如果写的是 flushdb,代表的是清空当前数据库。如果写的是 flushall,代表的是把16个数据库的数据全部清空。区别就在这里。

最关键的指令 get、set和 select、切换数据库和统计当前数据库的key-value 必须学会。

相关实践学习
基于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
相关文章
|
1月前
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
121 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
5月前
|
存储 NoSQL Redis
Redis系列学习文章分享---第十六篇(Redis原理1篇--Redis数据结构-动态字符串,insert,Dict,ZipList,QuickList,SkipList,RedisObject)
Redis系列学习文章分享---第十六篇(Redis原理1篇--Redis数据结构-动态字符串,insert,Dict,ZipList,QuickList,SkipList,RedisObject)
83 1
|
1月前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
237 3
|
1月前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
30 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
1月前
|
存储 Prometheus NoSQL
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
25 3
|
5月前
|
NoSQL Java Redis
Redis系列学习文章分享---第十八篇(Redis原理篇--网络模型,通讯协议,内存回收)
Redis系列学习文章分享---第十八篇(Redis原理篇--网络模型,通讯协议,内存回收)
83 0
|
5月前
|
存储 消息中间件 缓存
Redis系列学习文章分享---第十七篇(Redis原理篇--数据结构,网络模型)
Redis系列学习文章分享---第十七篇(Redis原理篇--数据结构,网络模型)
97 0
|
5月前
|
存储 NoSQL 算法
Redis系列学习文章分享---第十篇(Redis快速入门之附近商铺+用户签到+UV统计)
Redis系列学习文章分享---第十篇(Redis快速入门之附近商铺+用户签到+UV统计)
40 0
|
5月前
|
存储 NoSQL Redis
Redis系列学习文章分享---第九篇(Redis快速入门之好友关注--关注和取关 -共同关注 -Feed流实现方案分析 -推送到粉丝收件箱 -滚动分页查询)
Redis系列学习文章分享---第九篇(Redis快速入门之好友关注--关注和取关 -共同关注 -Feed流实现方案分析 -推送到粉丝收件箱 -滚动分页查询)
62 0
|
5月前
|
消息中间件 负载均衡 NoSQL
Redis系列学习文章分享---第七篇(Redis快速入门之消息队列--List实现消息队列 Pubsub实现消息队列 stream的单消费模式 stream的消费者组模式 基于stream消息队列)
Redis系列学习文章分享---第七篇(Redis快速入门之消息队列--List实现消息队列 Pubsub实现消息队列 stream的单消费模式 stream的消费者组模式 基于stream消息队列)
71 0