redis都有哪些用法

news/2024/12/5 0:05:45/

2f5f176729954bebaeea3494babcabb3.gif

 

1. 缓存(Caching):
• Redis常被用作缓存层,存储那些频繁访问但更新不频繁的数据,以减少数据库的访问压力,提高数据读取速度。
• LRU(Least Recently Used)淘汰策略:Redis支持多种内存淘汰策略,其中LRU策略会优先淘汰最近最少使用的数据。
2. 会话存储(Session Storage):
• Redis可以存储用户会话信息,特别是在分布式系统中,它能够确保用户会话的一致性和可用性。
• 会话持久化:通过将会话数据存储在Redis中,即使服务器重启,用户会话也不会丢失。
3. 发布/订阅(Pub/Sub):
• Redis提供了发布/订阅模式,允许发送者(发布者)将消息发送到频道,接收者(订阅者)从频道中接收消息。
• 频道(Channel):用于发送和接收消息的通道。
• 模式匹配(Pattern Matching):订阅者可以订阅一个模式,从而接收与模式匹配的所有频道的消息。
4. 列表(List):
• Redis列表是一种有序的字符串集合,支持在列表的两端进行元素的添加和移除操作。
• LPUSH/RPUSH:在列表的左端或右端添加元素。
• LPOP/RPOP:从列表的左端或右端移除元素。
5. 集合(Set):
• Redis集合是一种无序的字符串集合,支持元素的添加、删除和集合运算(如并集、交集等)。
• SADD:向集合中添加元素。
• SREM:从集合中移除元素。
• SUNION/SINTER/SDIFF:计算集合的并集、交集和差集。
6. 有序集合(Sorted Set):
• Redis有序集合是一种有序的字符串集合,每个元素都与一个分数相关联,支持按分数排序的元素访问。
• ZADD:向有序集合中添加元素及其分数。
• ZRANGE:按分数从低到高获取有序集合中的元素。
• ZREVRANGE:按分数从高到低获取有序集合中的元素。
7. 哈希(Hash):
• Redis哈希是一种键值对集合,其中每个键都是字符串,而值可以是字符串、数字等。
• HSET:向哈希中添加键值对。
• HGET:从哈希中获取指定键的值。
• HMSET/HMGET:同时设置或获取多个键值对。
8. 位图(Bitmap)和位字段(Bitfield):
• Redis提供了位级别的操作,允许在字符串上进行位设置、位翻转和位计数等操作。
• SETBIT:设置字符串中指定位置的位。
• GETBIT:获取字符串中指定位置的位的值。
• BITCOUNT:统计字符串中设置为1的位的数量。
9. 地理空间索引(Geospatial Indexing):
• Redis支持地理空间数据的存储和查询,如计算两点之间的距离、查找指定范围内的点等。
• GEOADD:向地理空间索引中添加点的坐标。
• GEORADIUS:根据点的坐标和半径查询范围内的点。
10. 脚本(Scripting):
• Redis支持使用Lua脚本进行复杂的操作,这些脚本可以在服务器端执行,从而减少网络延迟并提高性能。
• EVAL:执行Lua脚本。
• EVALSHA:使用脚本的SHA1摘要执行脚本,以节省带宽。
11. 持久化(Persistence):
• Redis提供了多种持久化机制,如RDB快照和AOF(Append-Only File)日志,以确保数据的可靠性和持久性。
• RDB:定期将内存中的数据快照保存到磁盘上。
• AOF:记录每次写操作到日志文件中,当服务器重启时,可以重新执行这些操作来恢复数据。

 


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

相关文章

【SpringBoot】整合篇

1、log4j2 第一步&#xff0c;导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions><!-- 去掉springboot默认配置 --> <exclusion> <…

113. UE5 GAS RPG 实现传送点切换地图

接着我们优化体验相关&#xff0c;首先实现检查点可以在选中点击后&#xff0c;可以自动移动到目标检查点。然后增加一个可以提示玩家已经探索过相关区域的光柱&#xff0c;最后增加一个传送点&#xff0c;可以通过传送点传送到其它关卡。 实现点击自动移动到检查点 先实现点…

milvus 通俗易懂原理

向量值如何生成的 Milvus 是一个开源的向量数据库&#xff0c;专门用于处理高维向量的存储、搜索和分析。向量值本身通常来自于某些机器学习或深度学习模型的输出&#xff0c;尤其是在自然语言处理&#xff08;NLP&#xff09;、计算机视觉&#xff08;CV&#xff09;、推荐系…

数据结构有哪些?

常见的数据结构包括&#xff1a;数组、链表、栈、队列、树、堆、散列表&#xff08;哈希表&#xff09;等。‌ ‌数组‌&#xff1a;按照索引查询元素的速度很快&#xff0c;但大小固定&#xff0c;添加和删除元素需要移动其他元素&#xff0c;且只能存储一种类型的数据。‌链…

Spring Cloud Alibaba(六)

目录&#xff1a; 分布式链路追踪-SkyWalking为什么需要链路追踪什么是SkyWalkingSkyWalking核心概念什么是探针Java AgentJava探针日志监控实现之环境搭建Java探针日志监控实现之探针实现编写探针类TestAgent搭建 ElasticsearchSkyWalking服务环境搭建搭建微服务微服务接入Sky…

SVM支持向量机分类——基于Python实现

SVM支持向量机分类 1.描述统计 from numpy import * from scipy import * from pandas import * import matplotlib.pyplot as pltimport seaborn as sns glassread_csv(../data/第5章数据/Glass.csv,sep,) glass.head() glass[Type].value_counts()Type 2 76 1 70 7 …

流量特征分析

菜刀&#xff1a; PHP&#xff1a; 请求头中&#xff1a;ua头为百度&#xff0c;火狐 请求体中传递的payload为base64编码&#xff0c;有assert、eval、base64等特征字符 &#xff0c;并且存在固定的字符串QGluaV9同时z0是菜刀默认的连接参数。 JSP&#xff1a; 主要在iA…

Spark常问面试题---项目总结

一、数据清洗&#xff0c;你都清洗什么&#xff1f;或者说 ETL 你是怎么做的&#xff1f; 我在这个项目主要清洗的式日志数据&#xff0c;日志数据传过来的json格式 去除掉无用的字段&#xff0c;过滤掉json格式不正确的脏数据 过滤清洗掉日志中缺少关键字段的数据&#xff…