Struct redis::Pipeline[][src]

pub struct Pipeline { /* fields omitted */ }

Represents a redis command pipeline.

Methods

impl Pipeline
[src]

A pipeline allows you to send multiple commands in one go to the redis server. API wise it's very similar to just using a command but it allows multiple commands to be chained and some features such as iteration are not available.

Basic example:

let ((k1, k2),) : ((i32, i32),) = redis::pipe()
    .cmd("SET").arg("key_1").arg(42).ignore()
    .cmd("SET").arg("key_2").arg(43).ignore()
    .cmd("MGET").arg(&["key_1", "key_2"]).query(&con).unwrap();

As you can see with cmd you can start a new command. By default each command produces a value but for some you can ignore them by calling ignore on the command. That way it will be skipped in the return value which is useful for SET commands and others, which do not have a useful return value.

Creates an empty pipeline. For consistency with the cmd api a pipe function is provided as alias.

Starts a new command. Functions such as arg then become available to add more arguments to that command.

Adds a command to the pipeline.

Adds an argument to the last started command. This works similar to the arg method of the Cmd object.

Note that this function fails the task if executed on an empty pipeline.

Instructs the pipeline to ignore the return value of this command. It will still be ensured that it is not an error, but any successful result is just thrown away. This makes result processing through tuples much easier because you do not need to handle all the items you do not care about.

Note that this function fails the task if executed on an empty pipeline.

This enables atomic mode. In atomic mode the whole pipeline is enclosed in MULTI/EXEC. From the user's point of view nothing changes however. This is easier than using MULTI/EXEC yourself as the format does not change.

let (k1, k2) : (i32, i32) = redis::pipe()
    .atomic()
    .cmd("GET").arg("key_1")
    .cmd("GET").arg("key_2").query(&con).unwrap();

Executes the pipeline and fetches the return values. Since most pipelines return different types it's recommended to use tuple matching to process the results:

let (k1, k2) : (i32, i32) = redis::pipe()
    .cmd("SET").arg("key_1").arg(42).ignore()
    .cmd("SET").arg("key_2").arg(43).ignore()
    .cmd("GET").arg("key_1")
    .cmd("GET").arg("key_2").query(&con).unwrap();

This is a shortcut to query() that does not return a value and will fail the task if the query of the pipeline fails.

This is equivalent to a call of query like this:

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

Trait Implementations

impl PipelineCommands for Pipeline
[src]

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 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.

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.

Check the expiration time of a key.

Rename a key.

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

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. Read more

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. Read more

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

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

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

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.

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. Read more

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.

Removes and returns the first element 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. Read more

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. Read more

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

Sets the list element at index to value

Removes and returns the last element of the list stored at key.

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. Read more

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. Read more

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

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

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

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

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. Read more

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. Read more

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. Read more

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

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.

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

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

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

Adds the specified elements to the specified HyperLogLog.

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

Merge N different HyperLogLogs into a single one.

Posts a message to the given channel.

Auto Trait Implementations

impl Send for Pipeline

impl Sync for Pipeline