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 信息。

相关推荐
夜泉_ly2 小时前
MySQL -安装与初识
数据库·mysql
qq_529835353 小时前
对计算机中缓存的理解和使用Redis作为缓存
数据库·redis·缓存
月光水岸New5 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6755 小时前
数据库基础1
数据库
我爱松子鱼5 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo6 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser7 小时前
【SQL】多表查询案例
数据库·sql
Galeoto7 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
希忘auto7 小时前
详解Redis在Centos上的安装
redis·centos
人间打气筒(Ada)7 小时前
MySQL主从架构
服务器·数据库·mysql