Redis学习笔记( 入门篇)

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

Redis 介绍

是什么?

基于内存的 K / V 存储中间件

NoSQL 键值对数据库

Redis 不仅仅是数据库,它还能作为消息队列等等。

1.png关系型 SQL 和 NoSQL 的对⽐

其中应⽤场景是关键:

1.png


Redis 特征

1. ⽀持多种数据结构
2. 单线程,每个命令的执⾏具备原⼦性,中途不会执⾏其他命令(指命令处理始终是单线程的,⾃ 6.x 起改为多
线程接受⽹络请求)
3. ⾼性能、低延时(基于内存、IO 多路复⽤、良好编码)
4. ⽀持数据持久化
5. ⽀持主从、分⽚集群
6. ⽀持多语⾔客户端

Redis 安装

建议 Linux 下安装,直接到官⽹安装即可,注意安装后更改 redis.conf ⽂件,设置 bind ip、requirepass 密码等参数。


Redis 连接⽅式


redis-cliGUI


多语⾔ SDK


Redis 常⽤命令


Redis 的命令根据数据结构分为多个组。


不⽤背!忘了就查:


1)redis 官⽹命令集:https://redis.io/commands/,中⽂版:http://www.redis.cn/commands.html


2)redis-cli help 命令查看,help [command] 可以查看某个具体命令、help @xxx 可以查看某个分组下的命令1.png

通⽤命令


set key valueget key


keys pattern 模糊搜索多个 key。性能较差,⽣产环境(尤其是主节点)不建议使⽤


del key...


exists key 判断 key 是否存在


expire key 设置过期时间


ttl key 查询剩余存活时间,未设置过期时间则为 -1


Redis 基本数据结构

String 类型

⽀持存储字符串、数字、浮点数(实际存储都是字节数组):1.png

单 key 的 value 最⼤不能超过 512 M!


实际使⽤时,通常⽤冒号连接多个词来拼接 key,⽐如 [项⽬名]:[业务名]:[类名]:[id]。在某些 GUI ⼯具中,会⾃动根据冒号来划分层级,浏览更⽅便。


Hash 类型

值是⼀个 Hash 结构(类似 Java 的 HashMap):1.png

常⽤命令:

其实就是在 String 命令名的基础上增加了 'H' ⾸字⺟

1.png

List 类型

理解为 Java 的 LinkedList 双向链表,特点是有序、插⼊删除快、但查找性能⼀般:常⻅命令如下:

有点像操作⼀个双端队列1.png

Set 类型

集合,类似于 Java 中的 HashSet,特点是单 set 内元素不能重复、查找性能⾼。常⻅命令如下:

分为单集合命令和多集合命令(交并差集)1.png

SortedSet 类型

有序集合,在 set 的基础上给每个元素多存了⼀个分数,类似于 value 类型为整型的 HashMap。特点是有序、查找性能⾼,适合⽤于排⾏榜、统计 TopN。

常⻅命令:

和 set 结构的命令很像1.png

Redis 客户端

可以在 Redis 官⽹查看所有客户端以及推荐的客户端:https://redis.io/docs/clients

对于 Java,主要推荐以下 3 种:1.png其中,Jedis 的命令和原⽣ redis 命令⾏的命令⼀致,学习成本最低(注意它是线程不安全的,通常配合连接池使⽤);Lettuce 和 Spring 兼容最好(Spring Data Redis 默认集成)、基于 Netty 性能最⾼;Redisson 提供了和 Java 集合⽤法⼀致的分布式集合,适⽤于更复杂的业务场景。


Spring Data Redis

Spring Data 整合封装了⼀系列数据访问的操作,Spring Data Redis 则是封装了对 Jedis、Lettuce 这两个 Redis


客户端的操作,提供了统⼀的 RedisTemplate 来操作 Redis。


RedisTemplate 针对不同的 Redis 数据结构提供了不同的 API,划分更明确:1.png

注意,要在 Spring Data Redis 中使⽤ Lettuce 线程池的话,要额外引⼊ apache commons-pool2 依赖。


RedisTemplate 序列化

RedisTemplate 默认使⽤ JDK 原⽣序列化器,可读性差、内存占⽤⼤,因此可以⽤以下两种⽅式来改变序列化机制:


1. ⾃定义 RedisTemplate,指定 key 和 value 的序列化器


2. 使⽤⾃带的 StringRedisTemplate,key 和 value 都默认使⽤ String 序列化器,仅⽀持写⼊ String 类型的


key 和 value。因此需要⾃⼰将对象序列化成 String 来写⼊ Redis,从 Redis 读出数据时也要⼿动反序列化。

相关实践学习
基于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
相关文章
|
26天前
|
缓存 NoSQL Java
springboot的缓存和redis缓存,入门级别教程
本文介绍了Spring Boot中的缓存机制,包括使用默认的JVM缓存和集成Redis缓存,以及如何配置和使用缓存来提高应用程序性能。
71 1
springboot的缓存和redis缓存,入门级别教程
|
22天前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
48 8
|
3月前
|
SQL 存储 NoSQL
Redis6入门到实战------ 一、NoSQL数据库简介
这篇文章是关于NoSQL数据库的简介,讨论了技术发展、NoSQL数据库的概念、适用场景、不适用场景,以及常见的非关系型数据库。文章还提到了Web1.0到Web2.0时代的技术演进,以及解决CPU、内存和IO压力的方法,并对比了行式存储和列式存储数据库的特点。
Redis6入门到实战------ 一、NoSQL数据库简介
|
3月前
|
NoSQL 算法 安全
Redis6入门到实战------ 四、Redis配置文件介绍
这篇文章详细介绍了Redis配置文件中的各种设置,包括单位定义、包含配置、网络配置、守护进程设置、日志记录、密码安全、客户端连接限制以及内存使用策略等。
Redis6入门到实战------ 四、Redis配置文件介绍
|
3月前
|
NoSQL Redis 数据安全/隐私保护
Redis6入门到实战------ 二、Redis安装
这篇文章详细介绍了Redis 6的安装过程,包括下载、解压、编译、安装、配置以及启动Redis服务器的步骤。还涵盖了如何设置Redis以在后台运行,如何为Redis设置密码保护,以及如何配置Redis服务以实现开机自启动。
Redis6入门到实战------ 二、Redis安装
|
3月前
|
NoSQL Java Redis
Redis6入门到实战------思维导图+章节目录
这篇文章提供了Redis 6从入门到实战的全面学习资料,包括思维导图和各章节目录,涵盖了NoSQL数据库、Redis安装配置、数据类型、事务、持久化、主从复制、集群等核心知识点。
Redis6入门到实战------思维导图+章节目录
|
3月前
|
NoSQL 安全 Java
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
这篇文章深入探讨了Redis中的String数据类型,包括键操作的命令、String类型的命令使用,以及String在Redis中的内部数据结构实现。
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
|
3月前
|
NoSQL 关系型数据库 Redis
Redis6入门到实战------ 九、10. Redis_事务_锁机制_秒杀
这篇文章深入探讨了Redis事务的概念、命令使用、错误处理机制以及乐观锁和悲观锁的应用,并通过WATCH/UNWATCH命令展示了事务中的锁机制。
Redis6入门到实战------ 九、10. Redis_事务_锁机制_秒杀
|
3月前
|
NoSQL Java Redis
Redis6入门到实战------ 八、Redis与Spring Boot整合
这篇文章详细介绍了如何在Spring Boot项目中整合Redis,包括在`pom.xml`中添加依赖、配置`application.properties`文件、创建配置类以及编写测试类来验证Redis的连接和基本操作。
Redis6入门到实战------ 八、Redis与Spring Boot整合
|
3月前
|
存储 NoSQL 算法
Redis6入门到实战------ 三、常用五大数据类型(列表(List)、集合(Set)、哈希(Hash)、Zset(sorted set))
这是关于Redis 6入门到实战的文章,具体内容涉及Redis的五大数据类型:列表(List)、集合(Set)、哈希(Hash)、有序集合(Zset(sorted set))。文章详细介绍了这些数据类型的特点、常用命令以及它们背后的数据结构。如果您有任何关于Redis的具体问题或需要进一步的帮助,请随时告诉我。