Struct puff_rs::databases::pubsub::Cmd

pub struct Cmd { /* private fields */ }
Expand description

Represents redis commands.

Implementations

A command acts as a builder interface to creating encoded redis requests. This allows you to easiy assemble a packed command by chaining arguments together.

Basic example:

redis::Cmd::new().arg("SET").arg("my_key").arg(42);

There is also a helper function called cmd which makes it a tiny bit shorter:

redis::cmd("SET").arg("my_key").arg(42);

Because currently rust’s currently does not have an ideal system for lifetimes of temporaries, sometimes you need to hold on to the initially generated command:

let mut cmd = redis::cmd("SMEMBERS");
let mut iter : redis::Iter<i32> = cmd.arg("my_set").clone().iter(&mut con).unwrap();

Creates a new empty command.

Appends an argument to the command. The argument passed must be a type that implements ToRedisArgs. Most primitive types as well as vectors of primitive types implement it.

For instance all of the following are valid:

redis::cmd("SET").arg(&["my_key", "my_value"]);
redis::cmd("SET").arg("my_key").arg(42);
redis::cmd("SET").arg("my_key").arg(b"my_value");

Works similar to arg but adds a cursor argument. This is always an integer and also flips the command implementation to support a different mode for the iterators where the iterator will ask for another batch of items when the local data is exhausted.

let mut cmd = redis::cmd("SSCAN");
let mut iter : redis::Iter<isize> =
    cmd.arg("my_set").cursor_arg(0).clone().iter(&mut con).unwrap();
for x in iter {
    // do something with the item
}

Returns the packed command as a byte vector.

Returns true if the command is in scan mode.

Sends the command as query to the connection and converts the result to the target redis value. This is the general way how you can retrieve data.

Async version of query.

Similar to query() but returns an iterator over the items of the bulk result or iterator. In normal mode this is not in any way more efficient than just querying into a Vec<T> as it’s internally implemented as buffering into a vector. This however is useful when cursor_arg was used in which case the iterator will query for more items until the server side cursor is exhausted.

This is useful for commands such as SSCAN, SCAN and others.

One speciality of this function is that it will check if the response looks like a cursor or not and always just looks at the payload. This way you can use the function the same for responses in the format of KEYS (just a list) as well as SSCAN (which returns a tuple of cursor and list).

Similar to iter() but returns an AsyncIter over the items of the bulk result or iterator. A futures::Stream can be obtained by calling stream() on the AsyncIter. In normal mode this is not in any way more efficient than just querying into a Vec<T> as it’s internally implemented as buffering into a vector. This however is useful when cursor_arg was used in which case the stream will query for more items until the server side cursor is exhausted.

This is useful for commands such as SSCAN, SCAN and others in async contexts.

One speciality of this function is that it will check if the response looks like a cursor or not and always just looks at the payload. This way you can use the function the same for responses in the format of KEYS (just a list) as well as SSCAN (which returns a tuple of cursor and list).

This is a shortcut to query() that does not return a value and will fail the task if the query fails because of an error. This is mainly useful in examples and for simple commands like setting keys.

This is equivalent to a call of query like this:

let _ : () = redis::cmd("PING").query(&mut con).unwrap();

Returns an iterator over the arguments in this command (including the command name itself)

Get the value of a key. If key is a vec this becomes an MGET.

Gets all keys matching pattern

Set the string value of a key.

Sets multiple keys to their values.

Set the value and expiration of a key.

Set the value and expiration in milliseconds of a key.

Set the value of a key, only if the key does not exist

Sets multiple keys to their values failing if at least one already exists.

Set the string value of a key and return its old value.

Get a range of bytes/substring from the value of a key. Negative values provide an offset from the end of the value.

Overwrite the part of the value stored in key at the specified offset.

Delete one or more keys.

Determine if a key exists.

Set a key’s time to live in seconds.

Set the expiration for a key as a UNIX timestamp.

Set a key’s time to live in milliseconds.

Set the expiration for a key as a UNIX timestamp in milliseconds.

Remove the expiration from a key.

Get the expiration time of a key.

Get the expiration time of a key in milliseconds.

Rename a key.

Rename a key, only if the new key does not exist.

Unlink one or more keys.

Append a value to a key.

Increment the numeric value of a key by the given amount. This issues a INCRBY or INCRBYFLOAT depending on the type.

Decrement the numeric value of a key by the given amount.

Sets or clears the bit at offset in the string value stored at key.

Returns the bit value at offset in the string value stored at key.

Count set bits in a string.

Count set bits in a string in a range.

Perform a bitwise AND between multiple keys (containing string values) and store the result in the destination key.

Perform a bitwise OR between multiple keys (containing string values) and store the result in the destination key.

Perform a bitwise XOR between multiple keys (containing string values) and store the result in the destination key.

Perform a bitwise NOT of the key (containing string values) and store the result in the destination key.

Get the length of the value stored in a key.

Gets a single (or multiple) fields from a hash.

Deletes a single (or multiple) fields from a hash.

Sets a single field in a hash.

Sets a single field in a hash if it does not exist.

Sets a multiple fields in a hash.

Increments a value.

Checks if a field in a hash exists.

Gets all the keys in a hash.

Gets all the values in a hash.

Gets all the fields and values in a hash.

Gets the length of a hash.

Pop an element from a list, push it to another list and return it; or block until one is available

Pops count elements from the first non-empty list key from the list of provided key names; or blocks until one is available.

Remove and get the first element in a list, or block until one is available.

Remove and get the last element in a list, or block until one is available.

Pop a value from a list, push it to another list and return it; or block until one is available.

Get an element from a list by its index.

Insert an element before another element in a list.

Insert an element after another element in a list.

Returns the length of the list stored at key.

Pop an element a list, push it to another list and return it

Pops count elements from the first non-empty list key from the list of provided key names.

Removes and returns the up to count first elements of the list stored at key.

If count is not specified, then defaults to first element.

Returns the index of the first matching value of the list stored at key.

Insert all the specified values at the head of the list stored at key.

Inserts a value at the head of the list stored at key, only if key already exists and holds a list.

Returns the specified elements of the list stored at key.

Removes the first count occurrences of elements equal to value from the list stored at key.

Trim an existing list so that it will contain only the specified range of elements specified.

Sets the list element at index to value

Removes and returns the up to count last elements of the list stored at key

If count is not specified, then defaults to last element.

Pop a value from a list, push it to another list and return it.

Insert all the specified values at the tail of the list stored at key.

Inserts value at the tail of the list stored at key, only if key already exists and holds a list.

Add one or more members to a set.

Get the number of members in a set.

Subtract multiple sets.

Subtract multiple sets and store the resulting set in a key.

Intersect multiple sets.

Intersect multiple sets and store the resulting set in a key.

Determine if a given value is a member of a set.

Get all the members in a set.

Move a member from one set to another.

Remove and return a random member from a set.

Get one random member from a set.

Get multiple random members from a set.

Remove one or more members from a set.

Add multiple sets.

Add multiple sets and store the resulting set in a key.

Add one member to a sorted set, or update its score if it already exists.

Add multiple members to a sorted set, or update its score if it already exists.

Get the number of members in a sorted set.

Count the members in a sorted set with scores within the given values.

Increments the member in a sorted set at key by delta. If the member does not exist, it is added with delta as its score.

Intersect multiple sorted sets and store the resulting sorted set in a new key using SUM as aggregation function.

Intersect multiple sorted sets and store the resulting sorted set in a new key using MIN as aggregation function.

Intersect multiple sorted sets and store the resulting sorted set in a new key using MAX as aggregation function.

Count the number of members in a sorted set between a given lexicographical range.

Removes and returns up to count members with the highest scores in a sorted set

Removes and returns up to count members with the lowest scores in a sorted set

Return up to count random members in a sorted set (or 1 if count == None)

Return up to count random members in a sorted set with scores

Return a range of members in a sorted set, by index

Return a range of members in a sorted set, by index with scores.

Return a range of members in a sorted set, by lexicographical range.

Return a range of members in a sorted set, by lexicographical range with offset and limit.

Return a range of members in a sorted set, by lexicographical range.

Return a range of members in a sorted set, by lexicographical range with offset and limit.

Return a range of members in a sorted set, by score.

Return a range of members in a sorted set, by score with scores.

Return a range of members in a sorted set, by score with limit.

Return a range of members in a sorted set, by score with limit with scores.

Determine the index of a member in a sorted set.

Remove one or more members from a sorted set.

Remove all members in a sorted set between the given lexicographical range.

Remove all members in a sorted set within the given indexes.

Remove all members in a sorted set within the given scores.

Return a range of members in a sorted set, by index, with scores ordered from high to low.

Return a range of members in a sorted set, by index, with scores ordered from high to low.

Return a range of members in a sorted set, by score.

Return a range of members in a sorted set, by score with scores.

Return a range of members in a sorted set, by score with limit.

Return a range of members in a sorted set, by score with limit with scores.

Determine the index of a member in a sorted set, with scores ordered from high to low.

Get the score associated with the given member in a sorted set.

Get the scores associated with multiple members in a sorted set.

Unions multiple sorted sets and store the resulting sorted set in a new key using SUM as aggregation function.

Unions multiple sorted sets and store the resulting sorted set in a new key using MIN as aggregation function.

Unions multiple sorted sets and store the resulting sorted set in a new key using MAX as aggregation function.

Adds the specified elements to the specified HyperLogLog.

Return the approximated cardinality of the set(s) observed by the HyperLogLog at key(s).

Merge N different HyperLogLogs into a single one.

Posts a message to the given channel.

This is the reverse version of xrange_all. The same rules apply for start and end here.

XREVRANGE key + -

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Returns the “default value” for a type. Read more
Accepts a serialized redis command.
Accepts a serialized redis command.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Converts to this type from a reference to the input type.
Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more