Ниже приведен мой lua скрипт
if redis.call('sismember',KEYS[1],ARGV[1])==1
then redis.call('srem',KEYS[1],ARGV[1])
else return 0
end
store = tonumber(redis.call('hget',KEYS[2],'capacity'))
store = store + 1
redis.call('hset',KEYS[2],'capacity',store)
return 1
, когда я запускаю этот srcipt в Java, исключение типа
@user_script:1: WRONGTYPE Operation against a key holding the wrong kind of value
бросков, код Java похож на
Object ojb = jedis.evalsha(sha,2,userName.getBytes(),
id.getBytes(),id.getBytes()) ;
, где userName - это "tau", а id - "002" в моем коде, и я проверяю типы "tau" и "002" следующим образом:
127.0.0.1:6379> type tau
set
127.0.0.1:6379> type 002
hash
и точно, содержание их:
127.0.0.1:6379> hgetall 002
name
"鏁版嵁搴撲粠鍒犲簱鍒拌窇璺?
teacher
"taochq"
capacity
54
127.0.0.1:6379> smembers tau
002
004
001
127.0.0.1:6379>
Теперь я так растерялся и не знаю, что случилось, любая помощь будет благодарна