pub trait JsonCommands: ConnectionLike + Sized {
Show 18 methods fn json_arr_append<'a, K: ToRedisArgs, P: ToRedisArgs, V: Serialize, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P,
        value: &'a V
    ) -> RedisResult<RV> { ... } fn json_arr_index<'a, K: ToRedisArgs, P: ToRedisArgs, V: Serialize, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P,
        value: &'a V
    ) -> RedisResult<RV> { ... } fn json_arr_index_ss<'a, K: ToRedisArgs, P: ToRedisArgs, V: Serialize, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P,
        value: &'a V,
        start: &'a isize,
        stop: &'a isize
    ) -> RedisResult<RV> { ... } fn json_arr_insert<'a, K: ToRedisArgs, P: ToRedisArgs, V: Serialize, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P,
        index: i64,
        value: &'a V
    ) -> RedisResult<RV> { ... } fn json_arr_len<'a, K: ToRedisArgs, P: ToRedisArgs, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P
    ) -> RedisResult<RV> { ... } fn json_arr_pop<'a, K: ToRedisArgs, P: ToRedisArgs, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P,
        index: i64
    ) -> RedisResult<RV> { ... } fn json_arr_trim<'a, K: ToRedisArgs, P: ToRedisArgs, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P,
        start: i64,
        stop: i64
    ) -> RedisResult<RV> { ... } fn json_clear<'a, K: ToRedisArgs, P: ToRedisArgs, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P
    ) -> RedisResult<RV> { ... } fn json_del<'a, K: ToRedisArgs, P: ToRedisArgs, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P
    ) -> RedisResult<RV> { ... } fn json_get<'a, K: ToRedisArgs, P: ToRedisArgs, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P
    ) -> RedisResult<RV> { ... } fn json_num_incr_by<'a, K: ToRedisArgs, P: ToRedisArgs, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P,
        value: i64
    ) -> RedisResult<RV> { ... } fn json_obj_keys<'a, K: ToRedisArgs, P: ToRedisArgs, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P
    ) -> RedisResult<RV> { ... } fn json_obj_len<'a, K: ToRedisArgs, P: ToRedisArgs, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P
    ) -> RedisResult<RV> { ... } fn json_set<'a, K: ToRedisArgs, P: ToRedisArgs, V: Serialize, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P,
        value: &'a V
    ) -> RedisResult<RV> { ... } fn json_str_append<'a, K: ToRedisArgs, P: ToRedisArgs, V: ToRedisArgs, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P,
        value: V
    ) -> RedisResult<RV> { ... } fn json_str_len<'a, K: ToRedisArgs, P: ToRedisArgs, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P
    ) -> RedisResult<RV> { ... } fn json_toggle<'a, K: ToRedisArgs, P: ToRedisArgs, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P
    ) -> RedisResult<RV> { ... } fn json_type<'a, K: ToRedisArgs, P: ToRedisArgs, RV: FromRedisValue>(
        &mut self,
        key: K,
        path: P
    ) -> RedisResult<RV> { ... }
}
Available on crate feature json only.
Expand description

Implements RedisJSON commands for connection like objects. This allows you to send commands straight to a connection or client. It is also implemented for redis results of clients which makes for very convenient access in some basic cases.

This allows you to use nicer syntax for some common operations. For instance this code:

let client = redis::Client::open("redis://127.0.0.1/")?;
let mut con = client.get_connection()?;
redis::cmd("SET").arg("my_key").arg(42).execute(&mut con);
assert_eq!(redis::cmd("GET").arg("my_key").query(&mut con), Ok(42));

Will become this:

use redis::Commands;
let client = redis::Client::open("redis://127.0.0.1/")?;
let mut con = client.get_connection()?;
con.set("my_key", 42)?;
assert_eq!(con.get("my_key"), Ok(42));

Provided Methods

Append the JSON value to the array at path after the last element in it.

Index array at path, returns first occurance of value

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

Inserts the JSON value in the array at path before the index (shifts to the right).

index must be withing the array’s range.

Reports the length of the JSON Array at path in key.

Removes and returns an element from the index in the array.

index defaults to -1 (the end of the array).

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.

Clears container values (Arrays/Objects), and sets numeric values to 0.

Deletes a value at path.

Gets JSON Value(s) at path.

Runs JSON.GET is key is singular, JSON.MGET if there are multiple keys.

Increments the number value stored at path by number.

Returns the keys in the object that’s referenced by path.

Reports the number of keys in the JSON Object at path in key.

Sets the JSON Value at path in key.

Appends the json-string values to the string at path.

Reports the length of the JSON String at path in key.

Toggle a boolean value stored at path.

Reports the type of JSON value at path.

Implementors