统计网页UV如果你的页面访问量非常大,比如一个爆款页面几千万的 UV,你需要一个很大的 set 集合来统计,这就非常浪费空间。如果这样的页面很多,那所需要的存储空间是惊人的。为这样一个去重功能就耗费这样多的存储空间,不值得。可以使用HyperLogLog。HyperLogLog 提供了两个指令 pfadd 和 pfcount,根据字面意义很好理解,一个是增加计数,一个是获取计数。pfadd 用法和
转载
2024-10-11 20:33:12
60阅读
类型与值lua是动态类型的语言,没有类型定义的语法,每个值自带类型信息,有八种基础类型 用type函数可以返回值类型名称nil(空)nil表示空主要功能是用nil区别于其他正常的返回值boolean(布尔)boolean有两个值:true和falseboolean不是条件值的唯一表达方式在lua中任何值都可以表示一个条件,将none和nil视为假,除此之外的值都视为真。不同于其他脚本语言的是lua
转载
2024-04-02 22:09:21
204阅读
开篇Redis 中使用 lua 脚本编写的任务,可以将保证其执行任务的原子性,这里我整理了 3 个常用的lua脚本。简单的限流累计行为限制延迟任务脚本案例案例 1:简单的限流作用:N秒内最多执行多少次人数。--获取KEYlocal k = KEYS[1]--次数local mt = tonumber(ARGV[1] or '3')-- 过期时间,单位是 秒local expire = t
转载
2023-10-14 00:43:54
191阅读
1.管道(Pipeline)客户端可以一次性发送多个请求而不用等待服务器的响应,待所有命令都发送完后再一次性读取服务的响应。这样可以极大的降低多条命令执行的网络传输开销,管道执行多条命令的网络开销实际上只相当于一次命令执行的网络开销。需要注意到是用 pipeline 方式打包命令发送,redis 必须在处理完所有命令前先缓存起所有命令的处理结果。打包的命令越多,缓存消耗内存也越多。所以并不是打包的
转载
2023-12-24 21:33:47
92阅读
null值和空值create table worker(id int not null,name varchar(8) not null,pass varchar(20) not null);
mysql> insert into worker values(1,'HA','123456');
mysql> insert into worker values(1,'LB',null);
转载
2024-04-04 19:09:45
49阅读
Redis的分布式锁问题(九)Redis + Lua 脚本实现分布式锁上集回顾Lua的简单介绍 redis调用函数 set name jack set name Rose,再执行get name redis的 EVAL 命令 Lua脚本解决unLock业务流程 代码实现 unLock.lua RedisTe
转载
2023-11-22 12:20:36
36阅读
1原本以为自己对redis命令还蛮熟悉的,各种数据模型各种基于redis的骚操作。但是最近在使用redis的scan的命令式却踩了一个坑,顿时发觉自己原来对redis的游标理解的很有限。所以记录下这个踩坑的过程,背景如下:公司因为redis服务器内存吃紧,需要删除一些无用的没有设置过期时间的key。大概有500多w的key。虽然key的数目听起来挺吓人。但是自己玩redis也有年头了,这种事还不是
转载
2024-06-07 21:37:40
57阅读
文章目录KeysStringKey expirationListFirst steps with Redis Lists常用指令在使用LPUSH 和 RPUSH时可以一次性存入多个数据。取出数据操作(读取数据并删除数据)Lists的常用案例Capped listsBlocking operations on Lists(Lists的阻塞操作) Keyskey可以为空值key长度不易过长,占内存,
转载
2023-08-30 09:27:17
144阅读
Lua代码风格目录一、程序的版式1.1 空行1.2 空格1.3 长行拆分1.4 使用缩进二、命名规则2.1 共性规则2.2 文件命名
2.3 类的命名 2.4 变量命名2.5 常量,事件名的命名2.5 枚举三、文件组织3.1 文件描述3.2 文件中变量的定义3.3 类变量的定义3.4 函数参数的定义3.5 函数的定义规则3.6 注释的使用三、分隔和缩进3.1 使用空行3.2 使用空格符3.3 使用
转载
2024-04-26 11:59:25
32阅读
一、简介 Redis不仅仅是简单的key-value 存储器,同时也是一种data structures server。传统的key-value是指支持使用一个key字符串来索引value字符串的存储,而Redis中,value不仅仅支持字符串,还支持更多的复杂结构,包括列表,集合,哈希表等。现在我们一一讲解:Redis keys是采用二进制安全
转载
2024-02-02 12:43:25
95阅读
# Lua Redis Hash 判空
在使用 Redis 作为数据库或缓存时,常常会遇到需要判断 Hash 是否为空的情况。在 Lua 脚本中,可以通过一些简单的方法来判断 Redis 中的 Hash 是否为空。本文将介绍如何在 Lua 脚本中判断 Redis 中的 Hash 是否为空,并给出代码示例。
## Redis Hash 简介
Redis 是一个开源的内存数据库,常用于缓存、队列
原创
2024-05-03 05:45:10
65阅读
一、缓存穿透问题描述key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。解决方案一个一定不存在缓存及查询不到的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要
转载
2023-09-24 14:12:06
30阅读
何为布隆过滤器?本质上是一种数据结构,是1970年由布隆提出的。它实际上是一个很长的二进制向量(位图)和一系列随机映射函数(哈希函数)。可以用于检索一个元素是否在一个集合中。数据结构:布隆过滤器是一个 bit 向量或者说 bit 数组,就是一个二进制的数据,数据存放0或1。如果我们要映射一个值到布隆过滤器中,我们需要使用多个不同的哈希函数生成多个哈希值,并对每个生成的哈希值指向的 bit 位置为
转载
2023-09-06 10:02:02
167阅读
1、redis中有5种基本的数据类型String ,list ,set zset,hashString使用方法:Set key value;
Get key设置一个不存在的字符串,返回0,表示设置失败,已存在,返回1,表示设置新值成功,nx 表示not。Setnx key valueGet key。一次性设置多个mset key1 value1 key2 value2
Hash 哈希
Hset h
转载
2023-10-17 15:21:43
61阅读
redis的类型:(当redis中没有值就为null) redis有默认16个数据库 1.String类型(最基础的数据存储类型) 字符串 二进制安全的,可以存一些图片文件等 网站访问量 访问次数 可以包含任何数据(jps图片或者经过序列化的对象,单个key最大可以存储512M的数据),具有全局统
转载
2023-08-28 13:29:34
63阅读
# Redis Lua 过滤值实现指南
## 简介
在本文中,我将向你介绍如何使用 Redis Lua 脚本来过滤 Redis 中的值。Redis Lua 脚本是在服务器端执行的,它可以通过一系列 Redis 命令来实现复杂的逻辑操作。这对于处理大量数据或者需要复杂计算的场景非常有用。
## 流程图
下面是整个过程的流程图:
```mermaid
flowchart TD
A[连接到
原创
2023-12-26 08:43:19
40阅读
# Lua获取Redis值
Redis是一种高性能的非关系型数据库,常用于缓存、会话管理和消息队列等场景。在使用Redis时,我们通常需要通过Lua脚本来操作Redis,比如获取Redis中存储的值。本文将介绍如何使用Lua脚本从Redis中获取值,并提供代码示例。
## Lua脚本获取Redis值
Lua是一种轻量级的脚本语言,常用于与Redis进行交互。通过Lua脚本,我们可以在Redi
原创
2024-06-15 05:27:54
90阅读
# 如何实现“redis lua 值存在”
## 概述
在Redis中使用Lua脚本可以实现一些复杂的操作,比如判断某个key的值是否存在。在这篇文章中,我将教你如何通过Redis的Lua脚本来实现“redis lua 值存在”的功能。首先,让我们看一下整个实现的流程。
## 流程
| 步骤 | 操作 |
|:---:|:---|
| 1 | 编写Lua脚本,判断指定key的值是否存在 |
|
原创
2024-06-26 05:28:49
5阅读
Excel的IF函数详解Excel非常强大,数据处理和分析能力给我们的工作带来了非常大的帮助,今天我们就来了解Excel的函数IF,让我们逐步成为Excel大神。IF函数的语法是:IF(logical_test,value_if_true,value_if_false),其中logical_test:表示一个能返回True或False的条件,可以是数值或表达式value_if_true:表示当lo
转载
2024-03-21 19:51:38
232阅读
?引言继 缓存数据一致性问题 后,使用redis中又引来了常见的三种缓存问题,本篇就常见的解决方案来展开分析。?本篇脑图速览?缓存穿透缓存穿透 :缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。所谓穿透,就是直接透过了redis,直接透到数据库比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据
转载
2023-06-09 14:09:19
789阅读