pub struct Connection(/* private fields */);redis only.Expand description
An open connection to a Redis server.
§Examples
Get a value from the Redis database.
use spin_sdk::redis::Connection;
let conn = Connection::open("redis://127.0.0.1:6379").await?;
let payload = conn.get("archimedes-data").await?;
if let Some(data) = payload {
println!("{}", String::from_utf8_lossy(&data));
}Set a value in the Redis database.
use spin_sdk::redis::Connection;
let conn = Connection::open("redis://127.0.0.1:6379").await?;
let payload = "Eureka!".to_owned().into_bytes();
conn.set("archimedes-data", &payload).await?;Delete a value from the Redis database.
use spin_sdk::redis::Connection;
let conn = Connection::open("redis://127.0.0.1:6379").await?;
conn.del(&["archimedes-data"]).await?;Publish a message to a Redis channel.
use spin_sdk::redis::Connection;
let conn = Connection::open("redis://127.0.0.1:6379").await?;
let payload = b"cute pet picture".to_vec();
conn.publish("pet-pictures", &payload).await?;Implementations§
Source§impl Connection
impl Connection
Sourcepub async fn open(address: impl AsRef<str>) -> Result<Self, Error>
pub async fn open(address: impl AsRef<str>) -> Result<Self, Error>
Open a connection to the Redis instance at address.
Sourcepub async fn publish(
&self,
channel: impl AsRef<str>,
payload: impl AsRef<[u8]>,
) -> Result<(), Error>
pub async fn publish( &self, channel: impl AsRef<str>, payload: impl AsRef<[u8]>, ) -> Result<(), Error>
Publish a Redis message to the specified channel.
Sourcepub async fn get(&self, key: impl AsRef<str>) -> Result<Option<Payload>, Error>
pub async fn get(&self, key: impl AsRef<str>) -> Result<Option<Payload>, Error>
Get the value of a key.
Sourcepub async fn set(
&self,
key: impl AsRef<str>,
value: impl AsRef<[u8]>,
) -> Result<(), Error>
pub async fn set( &self, key: impl AsRef<str>, value: impl AsRef<[u8]>, ) -> Result<(), Error>
Set key to value.
If key already holds a value, it is overwritten.
Sourcepub async fn incr(&self, key: impl AsRef<str>) -> Result<i64, Error>
pub async fn incr(&self, key: impl AsRef<str>) -> Result<i64, Error>
Increments the number stored at key by one.
If the key does not exist, it is set to 0 before performing the operation.
An error::type-error is returned if the key contains a value of the wrong type
or contains a string that can not be represented as integer.
Sourcepub async fn del<Key: AsRef<str>>(
&self,
keys: impl IntoIterator<Item = Key>,
) -> Result<u32, Error>
pub async fn del<Key: AsRef<str>>( &self, keys: impl IntoIterator<Item = Key>, ) -> Result<u32, Error>
Removes the specified keys.
A key is ignored if it does not exist. Returns the number of keys deleted.
Sourcepub async fn sadd<Val: AsRef<str>>(
&self,
key: impl AsRef<str>,
values: impl IntoIterator<Item = Val>,
) -> Result<u32, Error>
pub async fn sadd<Val: AsRef<str>>( &self, key: impl AsRef<str>, values: impl IntoIterator<Item = Val>, ) -> Result<u32, Error>
Add the specified values to the set named key, returning the number of newly-added values.
Sourcepub async fn smembers(&self, key: impl AsRef<str>) -> Result<Vec<String>, Error>
pub async fn smembers(&self, key: impl AsRef<str>) -> Result<Vec<String>, Error>
Retrieve the contents of the set named key.
Sourcepub async fn srem<Val: AsRef<str>>(
&self,
key: impl AsRef<str>,
values: impl IntoIterator<Item = Val>,
) -> Result<u32, Error>
pub async fn srem<Val: AsRef<str>>( &self, key: impl AsRef<str>, values: impl IntoIterator<Item = Val>, ) -> Result<u32, Error>
Remove the specified values from the set named key, returning the number of newly-removed values.
Sourcepub async fn execute(
&self,
command: impl AsRef<str>,
arguments: impl IntoIterator<Item = RedisParameter>,
) -> Result<Vec<RedisResult>, Error>
pub async fn execute( &self, command: impl AsRef<str>, arguments: impl IntoIterator<Item = RedisParameter>, ) -> Result<Vec<RedisResult>, Error>
Execute an arbitrary Redis command and receive the result.