Redis避不开的五种数据结构
我们看上图中的命令中,虽然我们将 count 参数指定的是 5,将 value 参数指定的是 2,但由于当前列表中只有一个 2,所以,当前 lrem 命令最多只能删除 1 个元素,并且 lrem 命令也是有返回值的,也就是当前成功删除元素的个数。 ![]() count < 0:从右到左,最多删除 count 个元素。 ![]() count = 0:删除所有元素。 ![]() 按照索引范围修剪列表 ltrim key start stop ltrim 命令会直接保留 start 索引到 stop 索引的之间的元素,并包括当前元素,而之外的元素则都会删除掉,所以该命令也叫修剪列表。 ![]() 并且有一点要注意,ltrim 命令不会返回当前的列表中元素的个数,而是返回改命令是否成功的状态。 4.修改 修改指定索引下标的元素 lset key index value ![]() 5.阻塞操作 blpop key [key ...] timeout brpop key [key ...] timeout blpop 和 brpop 命令是 lpop 和 rpop 命令的阻塞版本,它们除了弹出方向不同以外,使用方法基本相同。 key [key ...]:可以指定多个列表的键。 timeout:阻塞时间(单位:秒) 下面我们看一下该命令的详细使用。 列表为空:如果 timeout=3,则表示客户端等待 3 秒后才能返回结果,如果 timeout=0,则表示客户端会一直等待,也就是会阻塞。 ![]() 由于我期间向列表中插入了元素,否则上述命令将一直阻塞下去。 列表不为空:如果 timeout=0,并且列表不为空时,则 blpop 和 brpop 命令会立即返回结果,不会阻塞。 ![]() 下面我们看一下 blpop 和 brpop 命令的注意事项。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |