CamelアプリケーションでRedisコンポーネントを使用しています。 1つの問題は、キーに文字列を自動的に付加することです。たとえば、のは、私は私のキャメルのアプリで、次を実行しましょう:私は、コマンドラインのRedisクライアントを開き、実行した場合、その後Camel Redisが自動的に文字列に文字列を追加する
from("direct://path/to/store/in/redis")
.setHeader(RedisConstants.COMMAND, constant("SET"))
.setHeader(RedisConstants.KEY, constant("key"))
.setHeader(RedisConstants.VALUE, constant("value"))
.to(spring-redis://localhost:6379);
DB内のすべてのキーを一覧表示するには、次
> keys *
ここで
1) "\xac\xed\x00\x05t\x00\x03key"
あなたはそれが\ XAC \ XED \ X00 \ x05t \ X00 \ X03の鍵を先頭に追加することを見ることができる、と私はそれはそれを行う場所を正確にはわからない:
それが返されます。
なんらかの理由で、これらのコマンドのキーに同じ文字列が付加されているため、キーのミスマッチがないため、これはGETおよびSETのRedisコマンドを使用している場合には問題ありません。しかし、私はこのように、キャメルアプリを通じて、KEYSのように、異なるRedisのコマンドを実行しようとした場合:
from("direct://some/other/path/to/redis")
.setHeader(RedisConstants.COMMAND, constant("KEYS"))
.setHeader(RedisConstants.PATTERN, constant("*"))
.to(spring-redis://localhost:6379);
それは何も返さないクエリになりアスタリスクにわずかに異なる文字列を、先頭に追加しますそのパターンに一致するものはないからです。この上
> KEYS "\xac\xed\x00\x05t\x00\x05t*"
任意の考え:それは
> KEYS *
コマンドはRedisの中で次のように変換され、ありますか?