当前位置: 首页 > article >正文

redis都有哪些用法

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.kler.cn/a/421899.html

相关文章:

  • PTA--数据结构预习报告:旅游规划问题
  • 计算几何学习,第一天
  • JAVA设计模式,责任链模式
  • MySQL删除数据要谨慎
  • Linux(完善中)
  • 基于Matlab三点雨流计数法的载荷时间历程分析与循环疲劳评估
  • URDF(描述机器人模型)和SDF(Gazebo中用于描述仿真环境)
  • 前端request拦截器自定义参数时,后端允许跨域的拦截器要加上对应的自定义参数不然会引起访问跨域
  • 【安卓开发】【Android Studio】项目构建(Build)时报错:Integer Overflow
  • GoReplay工具middlware使用(python版本)
  • 云原生和数据库哪个好一些?
  • case判断年份是否为闰年
  • redis 从16db块 加到32db块
  • Goland2024.3 发布,有点东西
  • 开发一套ERP 第十弹 图片作为配置文件,本地读取图片,定时更新图片类型
  • [高等数学学习记录] 泰勒公式
  • 【Linux】vim编辑器
  • ORB-SLAM2 ----- LocalMapping::ComputeF12和ORBmatcher::CheckDistEpipolarLine
  • C++ 封闭函数局部变量不能在 lambda 体中引用,除非其位于捕获列表中
  • Golang教程第25篇(并发)