记录在coldfusion中使用jedis的eval方法和lua的写法。
<cfobject type="Java" class="redis.clients.jedis.Jedis" name="Jedis" />
<cfset Jedis.init("192.168.1.1")>
<cfset Jedis.auth("密码")>
<table>
<tr>
<td>
<cfoutput>#Jedis.ping()#</cfoutput>
<br>
<br>
简单的eval :返回1
<br>
<cfoutput>#Jedis.eval("return 1")#</cfoutput>
<br>
<br>
数组参的eval:返回第一个参
<br>
<cfoutput>#Jedis.eval("return KEYS[1]",1,["foo"])#</cfoutput>
<br>
<br>
数组参的eval :返回数组
<br>
<cfset val=Jedis.eval("return {KEYS[1],KEYS[2]}",2,["foo","bar"])>
<cfdump var="#val#">
<cfoutput>#val[2]#,#val[1]#</cfoutput>
<br>
<br>
数组参的eval:返回调用redis的get方法取foo的值
<br>
<cfoutput>#Jedis.eval("local temp = redis.call('get',KEYS[1]) return temp",1,["foo"])#</cfoutput>
<br>
平常get方法取foo的值:
<br>
<cfoutput>#Jedis.get("foo")#</cfoutput>
<br>
<br>
数组参的eval:if判断键foo1是否为nil。如果是返回1,否则返回0
<br>
<cfoutput>#Jedis.eval("local temp = redis.call('get',KEYS[1]) if temp then return 0 else return 1 end",1,["foo1"])#</cfoutput>
<br>
平常get方法取foo1的值:
<br>
<cfoutput>#Jedis.get("foo1")#</cfoutput>
<br>
<br>
数组参的eval :设置键foo2的值为156,并返回foo2的值。学习要点:键的个数n确定了数组中第n个下标后面的元素是ARGV参数,这里的n是1,那么数组下标2和后面的的元素都是ARGV参数
<br>
<cfoutput>#Jedis.eval(" redis.call('set',KEYS[1],ARGV[1]) local temp = redis.call('get',KEYS[1]) return temp",1,["foo2",156])#</cfoutput>
<br>
平常get方法取foo2的值:
<br>
<cfoutput>#Jedis.get("foo2")#</cfoutput>
<br>
</td><td ></td></tr>
<tr><td></td><td ><cfdump var="#Jedis#"></td></tr>
<table>
<cfset Jedis.close()>
页面输出如下图: