将mget与redis rs一起使用时参数数目错误
我正在尝试使用Rust访问Redis,并具有以下功能:将mget与redis rs一起使用时参数数目错误,redis,rust,Redis,Rust,我正在尝试使用Rust访问Redis,并具有以下功能: extern crate redis; use redis::{Client, Commands, Connection, RedisResult}; fn main() { let redis_client = Client::open("redis://127.0.0.1/").unwrap(); let redis_conn = redis_client.get_connection().unwrap();
extern crate redis;
use redis::{Client, Commands, Connection, RedisResult};
fn main() {
let redis_client = Client::open("redis://127.0.0.1/").unwrap();
let redis_conn = redis_client.get_connection().unwrap();
let mut keys_to_get = vec![];
keys_to_get.push("random_key_1".to_string());
keys_to_get.push("random_key_2".to_string());
let redis_result: String = redis_conn.get(keys_to_get).unwrap();
}
当我运行cargo run
时,我得到:
运行`target/debug/test\u resdis`
线程“”在调用`Err`值上的`Result::unwrap()`时惊慌失措:服务器发出错误信号:“get”命令的参数数目错误,../src/libcore/Result.rs:746
注意:使用'RUST_BACKTRACE=1'运行回溯跟踪。
错误:进程未成功退出:`target/debug/test\u resdis`(退出代码:101)
我是做错了什么,还是一个bug?在netcat服务器上运行程序会显示以下请求:
*3
$3
得到
$12
随机键1
$12
随机键2
GET
命令应该是一个MGET
我认为这是一个: .在这里:感谢您的支持。mitsuhiko(redis的创建者)已经修复了它,应该会在下一版本中发布
impl<T: ToRedisArgs> ToRedisArgs for Vec<T> {
fn to_redis_args(&self) -> Vec<Vec<u8>> {
ToRedisArgs::make_arg_vec(self)
}
}
impl<'a, T: ToRedisArgs> ToRedisArgs for &'a [T] {
fn to_redis_args(&self) -> Vec<Vec<u8>> {
ToRedisArgs::make_arg_vec(*self)
}
fn is_single_arg(&self) -> bool {
ToRedisArgs::is_single_vec_arg(*self)
}
}
redis_conn.get(&*keys_to_get)