安装  sudo apt-get install 开启服务sudo service redis start关闭服务sudo service rdis stop配置文件 /etc/redis/redis.conf 默认端口:6379 每隔15分钟更新一条数据至物理存储:save 900 1 每隔5分钟更新十条数据至物理存储:save 300 10  每隔60分钟更新10000条数            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-24 12:23:10
                            
                                51阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Redis aof持久化  Redis支持两种持久化方式:rdb与aof,上一篇文章中已经大致介绍了rdb的持久化实现,这篇文章主要介绍aof实现。  与rdb方式相比,aof会使用更多的存储空间,因为它将数据以客户端命令的形式进行存储,并使用ascii编码。但它也有相应的优点,如支持append的方式保存db内容的变动,不需要像rdb方式一样一旦内容有变动,便需要重新完整生成            
                
         
            
            
            
            # Redis关闭Lua功能
> 本文介绍了Redis如何关闭Lua脚本功能的方法,并提供了代码示例。
## Redis是什么?
Redis是一个开源的内存数据存储系统,它提供了一个键值对的存储模型,用于支持各种数据结构,如字符串、哈希表、列表、集合等。Redis具有高性能、可靠性和可扩展性,并提供了丰富的命令集合,可以用于构建各种应用程序。
## Redis中的Lua脚本功能
Redi            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-01-07 11:45:31
                            
                                817阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            RDB最大的不足之处在于:一旦数据库出现问题,由于RDB文件中保存的数据并不是全新的。从上次RDB文件生成到redis宕机,这段时间的数据全部丢掉了(因为刷写机制还没有出发)。AOF比RDB有更好的持久性。在使用AOF的时候,redis会将每一个收到的写命令都通过write()系统函数追加到aof文件中,类似于MySQL的binlog。当redis重启后,会通过重新执行文件中保存的写命令来在内存中            
                
         
            
            
            
            Openresty 是基于 Nginx 的一个成熟的网络平台,集成 Nginx 和加强的 LuaJit,许多实用的 Lua 库和一些高品质高性能的第三方 Nginx 模块。本文将使用 Openresty 来搭建一个简单的灰度发布系统。环境为 Cenos 7。1   安装 Openresty   下载源码wget https://openresty.org/download/openrest            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-17 15:19:01
                            
                                100阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1.1程序块1.1.1程序块lua执行的每段代码,都被称为一个“程序块”, 一个程序块也就是一连串的语句和命令。  在lua的语法中,代码中的换行不起任何作用。  程序块可以是任意大小的,其可以只包含一条语句,也可以由多条不同的语句构成。几兆字节的程序块是很常见的。1.1.2交互模式可以在交互模式下运行解释器。当不使用任何参数直接运行解释器时,便进入了交互模式。这种模式下,输入的每条命令都会被立刻            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-14 10:57:57
                            
                                202阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            RedisTemplate执行lua脚本在Redis集群模式下报错EvalSha is not supported in cluster environment.异常信息:org.springframework.dao.InvalidDataAccessApiUsageException: EvalSha is not supported in cluster environment.
	at o            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-27 23:58:48
                            
                                411阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            需要完成功能借助redis Stream 数据结构实现消息队列,异步完成订单创建,其中涉及到了缓存(击穿,穿透,雪崩),锁(Redisson),并发处理,异步处理,Lua脚本IDE:IDEA 2022 1、读取库存数据 【Lua】  2、判断库存 【Lua】3、扣减库存 【Lua】4、创建队列和组 【Java】5、发送队列消息             
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-25 11:08:29
                            
                                267阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            redis-2.6支持通过EVAL命令来执行lua脚本,对lua脚本的支持扩展了redis的应用场景,redis支持路脚本需要做2件事redis能执行lua脚本在lua脚本里能执行redis的命令接下来,我将通过一个简单的实例来解析redis如何完成上述两个工作的。 构建一个简单的redis#define DICT_SIZE 100
struct redisDict {
  char*            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-05-08 14:24:01
                            
                                323阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、安装lua类库环境               1.1、yum install -y readline              &nb            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-09 17:42:12
                            
                                169阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            序言这里主要讨论解决Redis Cluster集群环境下的高并发问题. 问题Redis的命令是串行执行的,但是在集群环境下命令的顺序是不能保证的,不同线程之间对同一个KEY的操作会有嵌套,造成数据不准确.如果是Redis服务器是不是集群,则可以使用Multi,Exec,Watch的命令组合来解决原子性问题.同时也可以根据业务情况独立一个Redis服务器,使用Multi,Exec,Watc            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-21 20:10:51
                            
                                111阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、问题描述
业务中出现需要保证原子性的一系列缓存操作,所以决定使用lua脚本来保证原子性。
但是调用过程中lua脚本抛出了异常:attempt to perform arithmetic on local ‘xxx’ (a nil value)            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-17 11:03:36
                            
                                368阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             在Lua中,对于大多数程序都不用作任何错误处理,应用程序本身会负责这类问题。所有的Lua活动都是由应用程序的一次调用开始的,这类调用要求Lua执行一个程序块。执行过程中发生了错误,此调用会返回一个错误代码(nil ),这样应用程序就能采取适当的行动来处理。如果需要在Lua中处理错误,则必须使用函数pcall来包装需要执行的代码。假设在执行一段Lua代码时,捕获所有执行中引发的错误,那么第一步就是            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-19 10:45:17
                            
                                643阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Lua脚本执行redis指令报错【java.lang.IllegalStateException】问题出现背景今天在学习redis时,为了让redis的多条指令(取锁、比锁、释放锁)保障原子性,我通过使用一个lua脚本统一去执行redis的的多条指令。在执行lua脚本时报错问题说明问题复现 这是我的lua脚本-- 获取锁的key,即: KEY_PREFIX + name
local key = K            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-15 20:08:08
                            
                                119阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            开篇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阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            原本以为自己对redis命令还蛮熟悉的,各种数据模型各种基于redis的骚操作。但是最近在使用redis的scan的命令式却踩了一个坑,顿时发觉自己原来对redis的游标理解的很有限。所以记录下这个踩坑的过程,背景如下:公司因为redis服务器内存吃紧,需要删除一些无用的没有设置过期时间的key。大概有500多w的key。虽然key的数目听起来挺吓人。但是自己玩redis也有年头了,这种事还不是手            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-04 10:40:52
                            
                                232阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            为啥用redis呢(只是此处的使用原因):        因为redis是一个内存数据库,效率高;        redis支持事务;        redis            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-29 15:52:01
                            
                                238阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            客户端读写超时读写超时时间设置得过短命令本身就比较慢客户端与服务端网络不正常redis自身发生堵塞客户端连接超时连接超时时间设置过短redis发生阻塞,造成tcp-backlog 已满,造成新的连接失败客户端与服务端网络不正常客户端缓冲区异常输出缓冲区满,例如将普通客户端的输出缓冲区设置为1M 1M 60;config set client-output-buffer-limit "normal            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-15 17:30:17
                            
                                100阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            为了保证数据的争用安全,通常要采用锁机制控制。如果是单应用部署,直接通过synchronized关键字修改方法,就能解决,但是如果是分布式的部署 该方法就不能解决这个问题啦,此时就引出了一个分布式锁的概念。常用的分布式锁的实现方式有三种:基于数据库乐观锁(CAS)来实现;基于 Redis 来实现;基于 ZooKeeper 来实现。本文介绍:基于 Redis 和 Lua 脚本实现分布式锁功能。一、为            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-03 13:19:11
                            
                                127阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1,redis加入了lua虚拟机,可以执行lua脚本。为复杂的redis操作提供了解决方案。性能方面也不错。2,lua执行是原子性。3,redis加入 lua是一件伟大的事情。 以前使用redis lua脚本。只是解决一些简单的事情。这次需要处理复杂的事情。遇到了很多问题。1,方法的定义。        这次lua脚本            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-18 22:16:18
                            
                                183阅读