#[non_exhaustive]pub struct HotkeysOptions { /* private fields */ }Expand description
Options for the HOTKEYS START command.
At least one of cpu or net must be enabled to specify which metrics to collect.
The METRICS count is automatically derived from how many metric types are enabled.
Use HotkeysOptions::new_with_cpu() or HotkeysOptions::new_with_net() constructors to create
valid options with at least one metric enabled.
§Example
use redis::{HotkeysOptions, HotkeysCommands};
let client = redis::Client::open("redis://127.0.0.1/")?;
let mut con = client.get_connection()?;
// Track hotkeys by both CPU and network usage for 60 seconds
let opts = HotkeysOptions::new_with_cpu()
.and_net()
.with_duration_secs(60);
con.hotkeys_start(opts)?;Implementations§
Source§impl HotkeysOptions
impl HotkeysOptions
Sourcepub fn new_with_cpu() -> Self
pub fn new_with_cpu() -> Self
Creates options to track hotkeys by CPU time percentage.
§Example
use redis::HotkeysOptions;
// Track hotkeys by CPU time
let opts = HotkeysOptions::new_with_cpu();
// Track by both CPU and network
let opts = HotkeysOptions::new_with_cpu().and_net();Sourcepub fn new_with_net() -> Self
pub fn new_with_net() -> Self
Creates options to track hotkeys by network bytes percentage.
§Example
use redis::HotkeysOptions;
// Track hotkeys by network bytes
let opts = HotkeysOptions::new_with_net();
// Track by both network and CPU
let opts = HotkeysOptions::new_with_net().and_cpu();Sourcepub fn and_cpu(self) -> Self
pub fn and_cpu(self) -> Self
Also track hotkeys by CPU time percentage.
Used when both metrics are needed and the options were created using HotkeysOptions::new_with_net()
Sourcepub fn and_net(self) -> Self
pub fn and_net(self) -> Self
Also track hotkeys by network bytes percentage.
Used when both metrics are needed and the options were created using HotkeysOptions::new_with_cpu()
Sourcepub fn with_count(self, k: u64) -> Result<Self, String>
pub fn with_count(self, k: u64) -> Result<Self, String>
Set the value of K for top-K hotkeys tracking.
This is the COUNT parameter in the Redis command.
§Errors
Returns an error if k is not in the valid range 1..=64
(see HOTKEYS_COUNT_MIN and HOTKEYS_COUNT_MAX).
Sourcepub fn with_duration_secs(self, seconds: u64) -> Self
pub fn with_duration_secs(self, seconds: u64) -> Self
Set the duration in seconds for how long tracking should run.
After this time period, tracking will automatically stop. If not specified, tracking continues until manually stopped with HOTKEYS STOP.
Sourcepub fn with_sample_ratio(self, ratio: u64) -> Self
pub fn with_sample_ratio(self, ratio: u64) -> Self
Set the sampling ratio for probabilistic tracking.
Each key is sampled with probability 1/ratio. Higher values reduce performance impact but may miss some hotkeys. Lower values provide more accurate results but with higher performance cost.
Sourcepub fn with_slots(self, slots: Vec<u16>) -> Self
pub fn with_slots(self, slots: Vec<u16>) -> Self
Set specific hash slots to track in a cluster environment.
Only keys that hash to the specified slots will be tracked. Useful for narrowing tracking to a subset of the slots owned by a single shard.
§When to use
This option is meaningful only in cluster mode and only with single-node
routing (e.g. RoutingInfo::SingleNode)
targeting a primary that owns the requested slots. The Redis server will
reject the command if any of the requested slots are not owned by the
receiving node.
When fanning the command out to every node (e.g.
MultipleNodeRoutingInfo::AllMasters),
omit with_slots and let each primary track the keys for the slots it
owns, otherwise every primary that does not own the supplied slot list
will return an error.
Note: Using SLOTS when not in cluster mode will result in an error.
Trait Implementations§
Source§impl Clone for HotkeysOptions
impl Clone for HotkeysOptions
Source§fn clone(&self) -> HotkeysOptions
fn clone(&self) -> HotkeysOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HotkeysOptions
impl Debug for HotkeysOptions
Source§impl ToRedisArgs for HotkeysOptions
impl ToRedisArgs for HotkeysOptions
Source§fn write_redis_args<W>(&self, out: &mut W)where
W: ?Sized + RedisWrite,
fn write_redis_args<W>(&self, out: &mut W)where
W: ?Sized + RedisWrite,
Source§fn num_of_args(&self) -> usize
fn num_of_args(&self) -> usize
Source§fn to_redis_args(&self) -> Vec<Vec<u8>>
fn to_redis_args(&self) -> Vec<Vec<u8>>
Source§fn describe_numeric_behavior(&self) -> NumericBehavior
fn describe_numeric_behavior(&self) -> NumericBehavior
INCR vs INCRBYFLOAT).