Redis中String类型常见的应用场景

目录

一. 缓存功能

什么是缓存?

缓存是一种用于存储数据的计算机硬件或软件组件. 缓存核心功能是加快数据的访问速度。缓存通常存储那些频繁访问的数据,当这些热点数据被请求时, 就不从数据库中读取数据了,而是从缓存中读取数据. 这样会大大的减少访问的时间

Redis的工作原理

热点数据的过期策略是什么?

  1. 设置过期时间:
    Redis提供了EXPIRE、PEXPIRE、EXPIREAT和PEXPIREAT等命令来设置key的过期时间。
    通过设置过期时间,可以确保热点数据在不再需要时自动从Redis中删除,从而释放内存资源。
  2. 定期删除和惰性删除:
    Redis结合了定期删除和惰性删除两种策略来处理过期数据。
    • 定期删除:Redis会定期扫描数据库中的键,并删除其中已过期的键。这个过程是通过Redis的后台线程来完成的,以避免对主线程的性能造成影响。
    • 惰性删除:当客户端访问一个已过期的键时,Redis会在访问时检查并删除该键。这种策略不会增加额外的系统开销,但可能会导致过期数据在一段时间内仍然占用内存。
  3. 内存驱逐策略:
    当Redis达到最大内存限制时,会根据配置的内存驱逐策略(maxmemory-policy)来决定如何处理新的写请求。
    驱逐策略决定了哪些数据会被删除以腾出空间存储新的数据。常见的驱逐策略包括noeviction(禁止驱逐)、allkeys-lru(从所有键中驱逐最近最少使用的键)、volatile-lru(从设置了过期时间的键中驱逐最近最少使用的键)等。

二. 计数功能

  1. 许多应用都会使用Redis作为计数的基础工具,它可以实现快速计数、查询缓存的功能,同时数据可以异步处理或者落地到其他数据源.

示例:在Redis中统计某视频的播放次数

java 复制代码
// 在 Redis 中统计某视频的播放次数
long incrVideoCounter(long vid) {
 key = "video:" + vid;
 long count = Redis 执⾏命令:incr key
 return counter;
}

:

实际中要开发⼀个成熟、稳定的真实计数系统,要⾯临的挑战远不止如此简单:防作弊、按照不同维度计数、避免单点问题、数据持久化到底层数据源等。

三. 会话(session)共享

Session会话是用来解决什么问题的

⼀个分布式 Web 服务将用户的 Session 信息(例如用户登录信息)保存在各自的服务器中,但这样会造成⼀个问题:出于负载均衡的考虑,分布式服务会将用户的访问请求均衡到不同的服务器上,并且通常无法保证用户每次请求都会被均衡到同⼀台服务器上,这样当用户刷新⼀次访问是可能会发现需要重新登录,这个问题是会导致用户的体验感非常差.

使用Redis集中管理Session

可以使用 Redis 将用户的 Session 信息进行集中管理,在这种模式下,只要保证 Redis 是⾼可⽤和可扩展性的,无论用户被均衡到哪台 Web 服务器上,都集中从Redis 中查询、更新 Session 信息。

相关推荐
我是个假程序员4 小时前
sql server数据库可疑修复
数据库
极限实验室5 小时前
如何使用 Nginx 代理 Easysearch 服务
数据库·nginx
whn19775 小时前
selectdb修改表副本
数据库
TDengine (老段)6 小时前
TDengine 中的视图
数据库·物联网·oracle·时序数据库·tdengine·iotdb
Kyrie_Li7 小时前
Redis-Sentinel(哨兵模式)
数据库·redis·sentinel
计算机毕设定制辅导-无忧学长8 小时前
TDengine 数据写入优化:协议选择与批量操作(一)
网络·数据库·tdengine
Mr.洛 白8 小时前
OpenEuler/CentOS一键部署OpenGauss数据库教程(脚本+视频)
数据库·opengauss·gaussdb·国产数据库安装·安装脚本
炬火初现8 小时前
redis-cpp-cpp如何使用lua脚本
数据库·redis·lua
hxung8 小时前
Redis 数据类型详解
数据库·redis·缓存
oh,huoyuyan9 小时前
火语言RPA--Sqlite-导入数据表格
数据库·sqlite·rpa