本文目录
redis.call()和redis.pcall()的区别
redis.call() 与 redis.pcall()很类似, 他们 唯一的区别是当redis命令执行结果返回错误时, redis.call()将返回给调用者一个错误,而redis.pcall()会将捕获的错误以Lua表的形式返回
redis.call() 和 redis.pcall() 两个函数的参数可以是任意的 Redis 命令:
需要注意的是,上面这段脚本的确实现了将键 foo 的值设为 bar 的目的,但是,它违反了 EVAL 命令的语义,因为 脚本里使用的所有 键 都应该由 KEYS 数组来传递 ,就像这样:
要求使用正确的形式来传递键(key)是有原因的,因为不仅仅是 EVAL 这个命令, 所有的 Redis 命令,在执行之前都会被分析 ,籍此来确定命令会对哪些键进行操作。
因此,对于 EVAL 命令来说,必须使用正确的形式来传递键,才能确保 分析工作正确地执行 。
除此之外,使用正确的形式来传递键还有很多其他好处,它的 一个特别重要的用途就是确保 Redis 集群可以将你的请求发送到正确的集群节点。 (对 Redis 集群的工作还在进行当中,但是脚本功能被设计成可以与集群功能保持兼容。)不过,这条规矩 并不是强制性的, 从而使得用户有机会滥用(abuse) Redis 单实例配置(single instance configuration ), 代价是这样写出的脚本不能被 Redis 集群所兼容。
redis中怎么根据key获取值
redis的值有5种类型,不同的类型有不同的命令来获取:字符直接 get key队列 左端弹出一个元素 LPOP key哈希 HGET key field 集合 SMEMBERS key 返回集合中的所有元素有序集合ZRANGE key start stop更详细的命令可以查看redis常用命令。
如何读取redis中的key值中的结果
首先要链接redis客户端redis-cli 然后要通过key来查找你存的数据,相当于一个数组,有key,有value,通过key来查看value的值。keys * 注:列出当前redis存储的全部key。keys W* 注:列出当前redis存储的key名里第一个是“W”的全部key。找到key名字后,就可以查看key里存了什么值了。get WXOX 注:WXOX是你查出来的key的名字。然后就可以看到WXOX里存了什么东西了,可能存了一个字符串,也可能存了一个对象,要是空的话,就会输出nil,意思是啥也没有!