Trait redis::JsonAsyncCommands
source · pub trait JsonAsyncCommands: ConnectionLike + Send + Sized {
Show 18 methods
// Provided methods
fn json_arr_append<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: Serialize + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
value: &'a V
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_arr_index<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: Serialize + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
value: &'a V
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_arr_index_ss<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: Serialize + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
value: &'a V,
start: &'a isize,
stop: &'a isize
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_arr_insert<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: Serialize + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
index: i64,
value: &'a V
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_arr_len<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_arr_pop<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
index: i64
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_arr_trim<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
start: i64,
stop: i64
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_clear<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_del<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_get<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_num_incr_by<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
value: i64
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_obj_keys<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_obj_len<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_set<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: Serialize + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
value: &'a V
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_str_append<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
value: V
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_str_len<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_toggle<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
fn json_type<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>
where RV: FromRedisValue { ... }
}
json
only.Expand description
Implements RedisJSON commands over asynchronous connections. This allows you to send commands straight to a connection or client.
This allows you to use nicer syntax for some common operations. For instance this code:
use redis::JsonAsyncCommands;
let client = redis::Client::open("redis://127.0.0.1/")?;
let mut con = client.get_async_connection().await?;
redis::cmd("SET").arg("my_key").arg(42i32).query_async(&mut con).await?;
assert_eq!(redis::cmd("GET").arg("my_key").query_async(&mut con).await, Ok(42i32));
Will become this:
use redis::JsonAsyncCommands;
use serde_json::json;
use redis::Commands;
let client = redis::Client::open("redis://127.0.0.1/")?;
let mut con = client.get_async_connection().await?;
con.json_set("my_key", "$", &json!({"item": 42i32})).await?;
assert_eq!(con.json_get("my_key", "$").await, Ok(String::from(r#"[{"item":42}]"#)));
Provided Methods§
sourcefn json_arr_append<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: Serialize + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
value: &'a V
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_arr_append<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: Serialize + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P, value: &'a V ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Append the JSON value
to the array at path
after the last element in it.
sourcefn json_arr_index<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: Serialize + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
value: &'a V
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_arr_index<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: Serialize + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P, value: &'a V ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Index array at path
, returns first occurance of value
sourcefn json_arr_index_ss<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: Serialize + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
value: &'a V,
start: &'a isize,
stop: &'a isize
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_arr_index_ss<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: Serialize + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P, value: &'a V, start: &'a isize, stop: &'a isize ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Same as json_arr_index
except takes a start
and a stop
value, setting these to 0
will mean
they make no effect on the query
The default values for start
and stop
are 0
, so pass those in if you want them to take no effect
sourcefn json_arr_insert<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: Serialize + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
index: i64,
value: &'a V
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_arr_insert<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: Serialize + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P, index: i64, value: &'a V ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Inserts the JSON value
in the array at path
before the index
(shifts to the right).
index
must be withing the array’s range.
sourcefn json_arr_len<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_arr_len<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Reports the length of the JSON Array at path
in key
.
sourcefn json_arr_pop<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
index: i64
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_arr_pop<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P, index: i64 ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Removes and returns an element from the index
in the array.
index
defaults to -1
(the end of the array).
sourcefn json_arr_trim<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
start: i64,
stop: i64
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_arr_trim<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P, start: i64, stop: i64 ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Trims an array so that it contains only the specified inclusive range of elements.
This command is extremely forgiving and using it with out-of-range indexes will not produce an error. There are a few differences between how RedisJSON v2.0 and legacy versions handle out-of-range indexes.
sourcefn json_clear<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_clear<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Clears container values (Arrays/Objects), and sets numeric values to 0.
sourcefn json_del<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_del<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Deletes a value at path
.
sourcefn json_get<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_get<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Gets JSON Value(s) at path
.
Runs JSON.GET
is key is singular, JSON.MGET
if there are multiple keys.
sourcefn json_num_incr_by<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
value: i64
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_num_incr_by<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P, value: i64 ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Increments the number value stored at path
by number
.
sourcefn json_obj_keys<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_obj_keys<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Returns the keys in the object that’s referenced by path
.
sourcefn json_obj_len<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_obj_len<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Reports the number of keys in the JSON Object at path
in key
.
sourcefn json_set<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: Serialize + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
value: &'a V
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_set<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: Serialize + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P, value: &'a V ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Sets the JSON Value at path
in key
.
sourcefn json_str_append<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P,
value: V
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_str_append<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, V: ToRedisArgs + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P, value: V ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Appends the json-string
values to the string at path
.
sourcefn json_str_len<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_str_len<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Reports the length of the JSON String at path
in key
.
sourcefn json_toggle<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_toggle<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Toggle a boolean
value stored at path
.
sourcefn json_type<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>(
&'a mut self,
key: K,
path: P
) -> RedisFuture<'a, RV>where
RV: FromRedisValue,
fn json_type<'a, K: ToRedisArgs + Send + Sync + 'a, P: ToRedisArgs + Send + Sync + 'a, RV>( &'a mut self, key: K, path: P ) -> RedisFuture<'a, RV>where RV: FromRedisValue,
Reports the type of JSON value at path
.