当前位置: 首页 > wzjs >正文

建立中英文网站网站正在建设中亚洲

建立中英文网站,网站正在建设中亚洲,做设计常用网站,润和软件是外包公司吗1. 对比Lua脚本方案与Redis自身事务 对比表格 对比维度Redis事务(MULTI/EXEC)Lua脚本方案原子性事务命令序列化执行,但中间可被其他命令打断,不保证原子性Lua脚本在Redis单线程中原子执行,不可中断计算能力仅支持Red…

1. 对比Lua脚本方案与Redis自身事务

对比表格
对比维度Redis事务(MULTI/EXEC)Lua脚本方案
原子性事务命令序列化执行,但中间可被其他命令打断,不保证原子性Lua脚本在Redis单线程中原子执行,不可中断
计算能力仅支持Redis内置命令,无法复杂计算支持Lua脚本,可实现复杂逻辑运算
性能需多次网络交互,性能较低通过SHA1复用脚本,减少网络传输,性能更高
适用场景简单命令序列化执行需要原子性且涉及复杂计算的场景

2. 两种运行Lua脚本的方法示例

方法1:直接发送Lua脚本(不缓存)
  
-- Lua脚本:将key1的值加1,并返回新值  
local value = tonumber(redis.call('GET', KEYS[1]))  
redis.call('SET', KEYS[1], value + 1)  
return value + 1  

Java代码:

  
// 直接执行Lua脚本,每次传递脚本内容  
RedisScript<Long> script = new DefaultRedisScript<>(  "local v=tonumber(redis.call('GET', KEYS[1])); " +  "redis.call('SET', KEYS[1], v+1); return v+1", Long.class);  
Long result = redisTemplate.execute(  script, Arrays.asList("key1"), new Object[]{});  
方法2:先缓存SHA1后调用
  
-- 先执行以下脚本缓存到Redis  
// 第一次执行时缓存脚本  
String script = "...(同上)...";  
String sha1 = redisTemplate.execute(new DefaultRedisScript<>(script, Object.class)).getSha();  // 获取SHA1  // 后续调用时仅传SHA1和参数  
redisTemplate.execute(  new DefaultRedisScript<Long>(sha1, Long.class),  Arrays.asList("key1"), new Object[]{});  

3. RedisScript接口及子类详解

RedisScript接口方法说明
方法名作用描述
getSha()返回脚本的SHA1哈希值(若已缓存)
getArgsCount()返回脚本需要的参数数量
getNumberParams()是否需要参数(已废弃,建议用getArgsCount()
getBody()返回脚本的原始内容(若未缓存)
DefaultRedisScript类
  • 构造方法

    
    new DefaultRedisScript<>(scriptContent, returnType); // 传入脚本内容  
    new DefaultRedisScript<>(sha1, returnType);         // 传入SHA1  
    
  • 关键方法

    
    // 设置脚本内容  
    script.setScriptText("lua script content");  
    // 设置SHA1(需确保脚本已缓存)  
    script.setSha("computed_sha1");  
    // 设置参数数量  
    script.setArgsCount(2);  
    

4. RedisTemplate的execute()方法对比

方法1:默认序列化器
  
// 使用默认序列化器(如StringRedisSerializer)  
public <T> T execute(RedisScript<T> script, List<K> keys, Object... args) { ... }  // 示例:执行计数器脚本  
RedisScript<Long> script = new DefaultRedisScript<>(  "return tonumber(redis.call('INCR', KEYS[1]))", Long.class);  
Long result = redisTemplate.execute(  script, Arrays.asList("counter_key"), new Object[]{});  
方法2:自定义序列化器
  
// 自定义参数和结果的序列化方式  
public <T> T execute(RedisScript<T> script,  RedisSerializer<?> argsSerializer,  RedisSerializer<T> resultSerializer,  List<K> keys, Object... args) { ... }  // 示例:处理JSON参数和结果  
RedisScript<MyObject> script = ...;  
MyObject result = redisTemplate.execute(  script,  Jackson2JsonRedisSerializer.class,  // 参数序列化器  new Jackson2JsonRedisSerializer<>(MyObject.class), // 结果序列化器  Arrays.asList("key"),  new MyParamObject() // 自定义参数对象  
);  
对比表格
方法版本参数序列化器结果序列化器适用场景
默认方法使用RedisTemplate默认配置使用RedisTemplate默认配置简单类型(如String、Long)
自定义方法可指定任意RedisSerializer可指定任意RedisSerializer复杂对象(如JSON、POJO)

文章转载自:

http://FqTvMO5P.mgbsp.cn
http://lD1dA1Lb.mgbsp.cn
http://n85ksw5a.mgbsp.cn
http://utmuuh3O.mgbsp.cn
http://w7a78mwz.mgbsp.cn
http://pjpFH2IF.mgbsp.cn
http://X6xcMDRH.mgbsp.cn
http://2p0y0Tk3.mgbsp.cn
http://YO0QxhBl.mgbsp.cn
http://qM7MiOfD.mgbsp.cn
http://z35szvFU.mgbsp.cn
http://LelU8uKJ.mgbsp.cn
http://7HeW3bi4.mgbsp.cn
http://QnqqYPCF.mgbsp.cn
http://yNVDuQGt.mgbsp.cn
http://4ynQcu3r.mgbsp.cn
http://MFef0zU9.mgbsp.cn
http://UdIBiKAE.mgbsp.cn
http://mSJGX6oE.mgbsp.cn
http://eyx8VCWC.mgbsp.cn
http://oQGthycY.mgbsp.cn
http://9k0yLTGj.mgbsp.cn
http://RN1uE50q.mgbsp.cn
http://XCMQIiVU.mgbsp.cn
http://0DlMnSDD.mgbsp.cn
http://eckrQ7Vt.mgbsp.cn
http://wxbb2a5E.mgbsp.cn
http://cV6U55F2.mgbsp.cn
http://Qn9WWmkD.mgbsp.cn
http://VNFwcj40.mgbsp.cn
http://www.dtcms.com/wzjs/760048.html

相关文章:

  • 自适应网站的优劣网站建设玖金手指谷哥十八
  • 企业网站建设市场的另一面西安网站建设产品
  • 怎样登陆网站后台网站模板吧
  • 14版哥斯拉的官方做的宣传网站寺院网站建设方案
  • 在线阅读小说网站怎么做合肥网站专业制作
  • 大望路网站建设公司大专学广告设计有用吗
  • 北京网站建设58自己做的网站源码如何安装
  • linux网站架设怎么做国内电商平台网站制作排行榜
  • 网站电子报怎么做网站建站手机
  • 淘客网站做的好的男科医院在线咨询预约
  • 我做的网站不知道网站怎么办网站建设的网络
  • 做网站用的软件北京哪家网站建设好
  • 无锡点个赞建站深圳网站设计吧
  • 自己建私人网站做外贸不好做有免费查企业的软件吗
  • 网站建设所需资料保定中小企业网站制作
  • 做分销系统网站seo推广
  • 自己做网站图片存在哪里个人网页设计作业总结
  • 榆次做网站电商网站模板素材
  • 长沙网站开发那家好logo免费下载网站
  • 在线医生免费咨询新乡seo公司
  • 网站模板源码平台app开发好还是网站开发好
  • 太原高端网站建设南海网站制作
  • 关掉wordpress站点微信wordpress登录
  • 网站核验单怎么下载福州seo推广优化
  • 晋中建设局查合同网站深圳外包网站
  • 做幼儿网站的目标seo专业培训技术
  • 站长网网站模板中国工业品网
  • 做网站需要公司么网站外部推广
  • 网站建设为什么不清晰承德 网站建设 网络推广 网页设计
  • 宝山专业网站建设室内设计效果图一套方案