Redis基本命令和用法学习

简介: Redis基本命令和用法学习
字符串
字符串
SET Key Value 会覆盖原有的value
SET Key Value EX 10
SETNX 成功1 失败0
EXISTS 存在1 不存在0
SET key value 非原子性操作
EXPIRE key seconds # 设置生存时间
原子操作atomic
SETEX 秒
PSETEX 毫秒
GET
GETSET 获取key原有的值并SET对应的value
STRLEN 获取key对应value的长度
SETRANGE key offset value 从偏移量开始进行覆盖 如果偏移量之前为空 则用零字节 \x00代替
GETRANGE key start end 截取-1代表末尾
INCR key 自增
如果键 key 不存在, 那么它的值会先被初始化为 0 , 然后再执行 INCR 命令
如果键 key 储存的值不能被解释为数字, 那么 INCR 命令将返回一个错误。
INCR key
在key基础上进行运算操作,若不存在key,则从0开始进行运算。
INCRBY key increment
INCRBYFLOAT key floatIncrement 浮点操作
DECR key 自减
DECRBY key decrement
原子性操作atomic
MSET 同时为多个键设置值
MSET name zhangsan sex man age 18 address china
MGET name sex age address
MSETNX 当且仅当所有给定键都不存在时, 为所有给定键设置值。
即使只有一个给定键已经存在, MSETNX 命令也会拒绝执行对所有键的设置操作
哈希表
哈希表
HSET 表名 key value
HSETNX
HGET
HEXISTS 表名 key
HDEL
HLEN
HSTRLEN
HINCRBY 表名 key increment
HINCRBYFLOAT
HMSET
HMGET
HKEYS key
HGETALL
列表
列表
LPUSH key elments… 返回key的长度
LPUSHX key elemnts… 当key不存在的时候 LPUSHX 什么也不做
RPUSH key elments… 返回key长度
RPUSHX key elements
LPOP key 移除列表的头元素
RPOP key 移除列表的尾元素
RPOPLPUSH 在一个原子时间内,执行以下两个动作
将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。
将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。
安全的队列 使用 RPOPLPUSH 命令(或者它的阻塞版本 BRPOPLPUSH source destination timeout
)可以解决这个问题:因为它不仅返回一个消息,同时还将这个消息添加到另一个备份列表当中,如果一切正常的话,当一个客户端完成某个消息的处理之后,可以用
LREM key count value
命令将这个消息从备份表删除。还可以添加一个客户端专门用于监视备份表,它自动地将超过一定处理时限的消息重新放入队列中去(负责处理该消息的客户端可能已经崩溃),这样就不会丢失任何消息了。
循环列表 通过使用相同的 key 作为 RPOPLPUSH
命令的两个参数,客户端可以用一个接一个地获取列表元素的方式,取得列表的所有元素,而不必像 LRANGE key start stop
命令那样一下子将所有列表元素都从服务器传送到客户端中(两种方式的总复杂度都是 O(N))。 以上的模式甚至在以下的两个情况下也能正常工作:
有多个客户端同时对同一个列表进行旋转(rotating),它们获取不同的元素,直到所有元素都被读取完,之后又从头开始。
有客户端在向列表尾部(右边)添加新元素。 这个模式使得我们可以很容易实现这样一类系统:有 N
个客户端,需要连续不断地对一些元素进行处理,而且处理的过程必须尽可能地快。一个典型的例子就是服务器的监控程序:它们需要在尽可能短的时间内,并行地检查一组网站,确保它们的可访问性。
注意,使用这个模式的客户端是易于扩展(scala)且安全(reliable)的,因为就算接收到元素的客户端失败,元素还是保存在列表里面,不会丢失,等到下个迭代来临的时候,别的客户端又可以继续处理这些元素了。
LREM key count value
count 的值可以是以下几种:
count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。
count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。
count = 0 : 移除表中所有与 value 相等的值。
LLEN key
LINDEX key index 返回对应下标的value
LINSERT key BEFORE|AFTER piovt element
LSET key index value
将列表 key 下标为 index 的元素的值设置为 value 。
LTRIM key start end
BRPOPLPUSH
集合
集合
SADD key value…
SISMEMBER key value 判断元素是否在集合
SPOP key 随机移除一个元素
SRANDMEMBER key count 返回key集合中count个不相同的元素
如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合。
如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。
SMOVE soure target value 把value从原集合移动到目标集合
SCARD key 返回集合元素的数量
SMEMBERS key 返回集合所有的元素
SINTER key key 返回两个集合的交集
SINTERSTORE target key key 把两个集合的交集给target
SUNION key key 返回所有集合的并集
SUNIONSTORE target key key 把两个集合的并集给target
SDIFF key key1 key2… 返回key与其他key之间的差集
SDIFFSTORE target key1 key2… 把集合的差集给target
有序集合
有序集合
ZADD key score vlaue
ZSCORE key value 返回key 中 value对应的score
ZINCRBY key increment value key中的value 增加increment
ZCARD key 返回key中有多少个value
ZCOUNT key min max 返回key中符合min max之间的数量 闭区间
ZRANGE key start stop WITHSCORES
ZREVRANGE key start stop WITHSCORES
ZRANGERBYSCORE
ZRANGEBYSCORE rank -inf +inf [withscores]
ZREVRANGEBYSCORE 与 ZRANGERBYSCORE
ZREVRANGEBYSCORE rank +inf -inf
ZRANK key value 显示对应value在key中的排名 从小到大
返回值为value的下标
ZRANK rank player3
ZREVRANK rank player3
ZREM key value
ZREM rank player
ZREMRANGEBYRANK key start stop 按照排名移除元素
ZREMRANGEBYRANK rank 0 1
ZREMRANGEBYRANK key start stop 按照分数(闭区间)移除元素
ZREMRANGEBYSCORE rank 1200 1249
ZRANGEBYLEX rank - (playerXX 按照字节范围进行排序返回元素
ZLEXCOUNT [a [f 返回开闭区间范围内的元素数量
ZLEXCOUNT myset - +
ZREMRANGEBYLEX 移除开闭区间 a->d内元素
ZREMRANGEBYLEX myset (a (d
ZUNIONSTORE 求并集
#给alibaba的所有元素乘1.5倍 把programmer和alibaba乘后的结果赋值给zijiedance
ZUNIONSTORE zijiedance 2 programmer alibaba WEIGHTS 1 1.5
ZINTERSTORE 交集
目录
相关文章
|
7月前
|
存储 缓存 监控
Redis设计与实现——Redis命令参考与高级特性
Redis 是一个高性能的键值存储系统,支持丰富的数据类型(字符串、列表、哈希、集合等)和多种高级功能。本文档涵盖 Redis 的核心命令分类,包括数据类型操作、事务与脚本、持久化、集群管理、系统监控等。特别介绍了事务的原子性特性、Lua 脚本的执行方式及优势、排序机制、发布订阅模型以及慢查询日志和监视器工具的使用方法。适用于开发者快速掌握 Redis 常用命令及其应用场景,优化系统性能与可靠性。
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
503 5
|
3月前
|
存储 缓存 NoSQL
Redis基础命令与数据结构概览
Redis是一个功能强大的键值存储系统,提供了丰富的数据结构以及相应的操作命令来满足现代应用程序对于高速读写和灵活数据处理的需求。通过掌握这些基础命令,开发者能够高效地对Redis进行操作,实现数据存储和管理的高性能方案。
125 12
|
3月前
|
存储 消息中间件 NoSQL
【Redis】常用数据结构之List篇:从常用命令到典型使用场景
本文将系统探讨 Redis List 的核心特性、完整命令体系、底层存储实现以及典型实践场景,为读者构建从理论到应用的完整认知框架,助力开发者在实际业务中高效运用这一数据结构解决问题。
|
4月前
|
存储 缓存 人工智能
Redis六大常见命令详解:从set/get到过期策略的全方位解析
本文将通过结构化学习路径,帮助读者实现从命令语法掌握到工程化实践落地的能力跃迁,系统性提升 Redis 技术栈的应用水平。
|
5月前
|
NoSQL Redis
Lua脚本协助Redis分布式锁实现命令的原子性
利用Lua脚本确保Redis操作的原子性是分布式锁安全性的关键所在,可以大幅减少由于网络分区、客户端故障等导致的锁无法正确释放的情况,从而在分布式系统中保证数据操作的安全性和一致性。在将这些概念应用于生产环境前,建议深入理解Redis事务与Lua脚本的工作原理以及分布式锁的可能问题和解决方案。
228 8
|
7月前
|
存储 缓存 NoSQL
Redis中的常用命令-get&set&keys&exists&expire&ttl&type的详细解析
总的来说,这些Redis命令提供了处理存储在内存中的键值对的便捷方式。通过理解和运用它们,你可以更有效地在Redis中操作数据,使其更好地服务于你的应用。
485 17
|
7月前
|
消息中间件 NoSQL Linux
Redis的基本介绍和安装方式(包括Linux和Windows版本),以及常用命令的演示
Redis(Remote Dictionary Server)是一个高性能的开源键值存储数据库。它支持字符串、列表、散列、集合等多种数据类型,具有持久化、发布/订阅等高级功能。由于其出色的性能和广泛的使用场景,Redis在应用程序中常作为高速缓存、消息队列等用途。
933 16