Redis相关

embedded/2024/9/22 18:35:05/

一、BitMap

1. SETBIT对key存储的字符串值,设置或清除指定偏移量的位,位的设置和清除取决于value参数,可以是0或者1,如果key不存在,自动创建一个新的字符串值,offset参数必须大于或等于0,小于2^32SETBIT key offset value返回值:指定的偏移量原来存在的位
2. GETBIT显示key所存储的字符串值中偏移量上的位,当offset比字符串值长度大时,或者key不存在返回0GETBIT key offset返回值:字符串值上指定的偏移量上的位
3. BIOP 在redis中对二进制位进行操作运算的命令,允许在多个键之间执行位级别的布尔运算,并将值结果存储到一个目标键中,支持四种基本的布尔运算:ANDORNOTXORBITOP [布尔运算类型] [结果将存储的键] [key]ADD:与运算,全11,全00OR:或运算,全00,有一个1就出1NOT:非运算,有01,有10,全01XOR:异或运算,相同出0,相反出1
4.BICOUNT计算给定的字符串中,被设置为1的位的数量,可以通过设置额外的startend,查找指定位置的字符串中的1,而且startend的值可以设置为负数,-1就是代表最后一位。不存在的key会被当做空字符串处理,返回结果就为0BITCOUNT key [start] [end]返回值:被设置为1的数量

二、BIT中不同命令使用的场景

Sring

  • Seesion会话
  • 业务缓存
  • 分布式锁:为了防止用户同时登录多个设备进行操作

Int

  • 计数器
  • 限流
  • 全局唯一ID

Hash

  • 电商购物车

BitMap

  • 用户签到

List

  • 消息队列

ZSet

  • 排行榜

三、什么是缓存击穿,缓存穿透,缓存雪崩?

缓存击穿:是指当当某一个key的缓存过期时大并发量的请求同时访问key,瞬间击穿服务器直接访问到数据库,使得数据库处于负载情况
缓存穿透:是指缓存服务器中没有缓存数据,数据库中也没用符合条件的数据,导致业务系统每次都绕过缓存服务器查询下游的数据库,缓存服务器完全失去作用
缓存击穿是只击穿服务器端访问数据库,而缓存穿透是服务器端和数据库都没有的情况
缓存雪崩:是指当大量缓存同时过期或者缓存服务宕机,所有请求都直接访问数据库,造成数据高负载,影响性能,甚至数据库宕机

对于缓存穿透的防止常用的是布隆过滤器
布隆过滤器是一种比较巧妙的概率性数据结构,它可以告诉你数据一定不存在或可能存在,相比Map、Set、List等传统的数据结构,它占用的内存少、结构更高效


http://www.ppmy.cn/embedded/92859.html

相关文章

使用Spring与JDK动态代理实现事务管理

使用Spring与JDK动态代理实现事务管理 在现代企业级应用开发中,事务管理是一项关键的技术,它可以保证一系列操作要么全部成功,要么全部失败,从而确保数据的一致性和完整性。Spring框架提供了强大的事务管理能力,但有时…

24 - clearerr()函数

文章目录 1 函数原型2 参数3 返回值 1 函数原型 clearerr()函数:清除指定流stream的错误指示符,函数原型如下: void clearerr ( FILE * stream );cstdio库描述如下: Clear error indicators 1. Resets both the error and the …

YOLOv8进 | 检测头 | 小目标遮挡物性能提升的检测头Detect_MultiSEAM【完整代码】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv8改进有效…

OSPF 命令 Default-router-advertise 之 always 选项解析

1、关于 default-route-advertise 命令 Ospf 是可以通过 import-route 命令引入外部路由的,但很少有人会注意到,在默认情况下,ospf 是不会引入来自外部路由的缺省路由的。 但 ospf 有一个变通的方法,就是通过 default-route-adv…

AI+ 如何重塑技术生产力

在21世纪的科技浪潮中,人工智能(AI)作为一股不可忽视的力量,正以前所未有的速度渗透并重塑着各行各业的生产力格局。从智能制造到智慧农业,从金融服务到医疗健康,AI技术的应用不仅极大地提升了生产效率&…

Docker深入讲解

Docker深入讲解 目录 概述Docker基本概念 2.1 什么是Docker2.2 Docker的核心组件2.3 Docker与传统虚拟化技术的比较 Docker安装与配置 3.1 安装Docker3.2 配置Docker3.3 验证Docker安装 Docker镜像 4.1 什么是Docker镜像4.2 获取和管理镜像4.3 Dockerfile的使用4.4 构建镜像 …

JVM性能监控

一、jvisualvm jdk官方提供了监控JVM性能的工具jvisualvm,安装JDK之后,在安装目录下的bin目录中,找到jvisualvm.exe双击即可打开。 打开后的界面如下: 首次打开时候需要安装GC插件 Cmd 启动 jvisualvm 工具->插件 如果 503 …

二叉树:镜像树,子结构,二叉树转链表,二叉树的倒数K个数,对称,Z型打印

1.把一棵二叉树转换为它的镜像树。 void mirror_tree(TreeNode *root) {if(rootNULL) return ;TreeNode *temproot->right;root->rightroot->left;root->lefttemp;mirror_tree(root->right);mirror_tree(root->left);}2、输入两棵二叉树A,B&…