Redis入门级

news/2024/11/7 22:47:31/

一、Redis 入门

Redis介绍

是什么?
基于内存的K/V存储中间件.

NoSQL键值对数据库
Redis不仅仅是数据库,它还能作为消息队列等等。
在这里插入图片描述

在这里插入图片描述

关系型SQL和NoSQL的对比

其中应用场景是关键:
在这里插入图片描述

Redis特征

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

Redis安装

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

Redis连接方式

redis-cli
Gul
多语言SDK

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

不用背!忘了就查:

  1. redis官网命令集: https://redis.io/commands/,中文版: http://www.redis.cn/commands.html
  2. redis-cli help命令查看,help [command]可以查看某个具体命令、help @xxx可以查看某个分组下的命令
    在这里插入图片描述
通用命令.

set key value.

get key

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

exists key判断key是否存在.

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

Redis基本数据结构

String类型
支持存储字符串、数字、浮点数(实际存储都是字节数组):
在这里插入图片描述

key的value最大不能超过512 M!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y2suDizr-1666254499101)(C:\Users\Cowboy-Li\AppData\Roaming\Typora\typora-user-images\image-20221019202547849.png)]

实际使用时,通常用冒号连接多个词来拼接key,比如[项目名]:[业务名]:[类名]:[id]。在某些GUI工具中,会自动根据冒号来划分层级,浏览更方便。

Hash类型

值是一个Hash 结构(类似Java的 HashMap) :
在这里插入图片描述

常用命令:
其实就是在String命令名的基础上增加了’H’首字母
在这里插入图片描述

List类型

理解为Java的 LinkedList双向链表,特点是有序、插入删除快、但查找性能一般:常见命令如下:
有点像操作一个双端队列
在这里插入图片描述

Set 类型

集合,类似于Java中的HashSet,特点是单set内元素不能重复、查找性能高。常见命令如下:
分为单集合命令和多集合命令(交并差集)
在这里插入图片描述

SortedSet类型

有序集合,在set的基础上给每个元素多存了一个分数,类似于value类型为整型的HashMap。特点是有序、查找性能高,适合用于排行榜、统计TopN。
常见命令:
和set结构的命令很像
在这里插入图片描述

Redis客户端
主流客户端

可以在Redis官网查看所有客户端以及推荐的客户端:

https://redis.io/docs/clients

对于Java,主要推荐以下3种:
在这里插入图片描述

其中,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,划分更明确:

在这里插入图片描述

注意,要在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 读出数据时也要手动反序列化。


http://www.ppmy.cn/news/752965.html

相关文章

给大家推荐一首好听的流行音乐

给大家推荐一首好听的流行音乐 歌名:猪猪侠 谱曲:王巍 填词:王巍 歌曲原唱:陈洁丽 歌词: l u l a lula lula 噜啦噜啦咧噜啦噜啦咧,噜啦噜啦咧噜啦噜啦咧, 勇敢向前进前进有奖品我要跑第…

推荐一个不错的CD转MP3工具

推荐一个不错的工具可将CD瞬间转化为MP3,即兔子尾巴CD转MP3软件 下载地址:http://www.anwang.cn/soft/72/73/2007/200712174805.html 如下载地址失效可另行Google此软件 兔子尾巴CD转MP3软件拥有漂亮、实用的操作界面。更重要的是,她使您只需轻轻点几下鼠标&#xf…

浅谈Redis之Redis入门(初学者必备)

Resis入门 Redis简介Redis基本数据类型StringListHashsetzsetGo操作redisRedis当中的pipline Redis简介 Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久…

mysql 关于用户的练习

环境: (1) 创建用户 create user account1localhost identified by oldpwd1; 授予权限: #给表授予权限 grant select,insert on Team.player to account1localhost identified by oldpwd1;#给info字段授予update权限 grant update(info) on Team.pl…

解决笔记本突然无法显示周边WiFi

解决笔记本突然无法显示周边WiFi 昨晚莫名其妙笔记本搜索不到任何wifi信号,通过尝试了几种方式,终于搞定了。 通过网线连接笔记本,打开360驱动大师,其他软件例如驱动精灵也可以,对电脑驱动进行检查,可能是…

Win10笔记本不显示wifi列表

一、问题描述 1、连接有线网络时,只显示连接到的有线网络,而不显示wifi列表 2、不连接有线网络时,同样不显示wifi列表 二、解决方案 1、Win R 打开运行,并输入services.msc 2、回车确定,找到WLAN AutoConfig项&…

Re:天选2之找不到WLAN网络

天选的日常系列----网卡异常 问题模板 是这样一种情况,无论你重启wlan开关、重置网络、重启都毫无效果,进入网络中心后会发现蓝牙、以太网等都是红叉叉状态。 解决方法1 将所有与电脑相连的外置接口都拔掉(包括电源);长按电源…

win10网络不出现计算机列表,win10笔记本WiFi网络列表不显示内容的解决方法

随着WiFi网络的普及,大家生活和办公都离不开了,电脑和手机都需要连接WiFi上网。win10笔记本在连接无线网络wifi的时候,却发现任务栏的网络图标WiFi列表一个无线信号都没有,无法正常连接无线wifi,导致只能连接网线。重置…