redis查询所有key命令_Redis你掌握多少了,来个查漏补缺?
来源:数据分析与开发
本⽂约2806字,建议阅读8分钟。
本⽂介绍Redis的通⽤命令及其五种基本数据类型等,希望对读者能有帮助。
Redis 是什么
Redis 是 开源,内存 中的数据结构存储系统,它可以⽤作数据库、缓存和消息中间件。它⽀持多种类型的数据结构,如 字符串strings,散列 hashes, 列表 lists, 集合 sets, 有序集合 sorted sets 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。
Redis 还内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和⾃动 分区(Cluster)提供⾼可⽤性(high availability)。
嗯,没错这就是 redis 中⽂官⽅⽹站上⾯的介绍,简洁明了。
redis支持的五种数据类型NoSQL 是什么
我们知道 redis 是⼀种⾮关系型数据库 NoSQL 。⽽为什么出现 NoSQL?NoSQL ⼜是什么呢?
单机数据库的年代
在⼀个⽹站访问量不⼤的时候,我们使⽤⼀个数据库就⾜以应对流量请求。
缓存 + 拆分
随着访问量的上升,⼀个数据库已经不能满⾜我们的需求了。为了更⾼的性能,我们在中间加上了⼀个缓存层并且将数据库做了集、结构优化和读写分离。
⽽这⾥的缓存就是 NoSQL,当然做缓存也只是 NoSQL 的⼀种功能,就像 Redis 并不仅仅有缓存这⼀种功能。⽐如它还能实现 简单的消息队列,解决Session共享,计数器,排⾏榜,好友关系处理 等等功能,可见 Redis 是⼀个⾮常强⼤⼯具,让我们来学习它吧!
Redis 通⽤命令
⾸先我们抛开数据类型来讲关于 Redis 的通⽤命令。
操作 key 和 value
Redis 是⼀种 key value 存储的缓存数据库,所有的数据都有⼀个⾃⼰唯⼀的key。
这⾥为了⽅便演⽰,我使⽤了字符串相关的设置命令
keys [pattern] 获取符合要求的所有key。时间复杂度为 O(n),⼀般在⽣产环境中不使⽤,因为 Redis 是单线程的,执⾏耗时的任务会阻塞其他任务。⼀般会使⽤ scan 命令替代(⾮阻塞)。
dbsize 获取当前存储数据个数。
exists key 判断是否存在该key
del key 删除指定数据
type key 获取指定key的数据类型
rename key newkey 重命名
过期时间
Redis 中很多数据都是⽤来作为缓存数据的,⽽作为缓存就需要有过期时间,在 Redis 中提供了很强⼤的过期时间设置功能。
expire key seconds 为某个 key 设置过期时间。
ttl key 查看某个 key 的剩余时间,返回正数代表剩余的时间,-1代表永久,-2代表已过期或不存在。
Redis 的五种基本数据类型
在上⾯我说到了很多 Redis 作为缓存能实现的其他功能,⽐如计数器,排⾏榜,好友关系等,这些实现的依据就是靠着 Redis 的数据结构。在整个 Redis 中⼀共有五种
字符串 string
在绝⼤部分编程语⾔中都有 String 字符串类型,对于作为数据库的 Redis 也是必不可少的。
set key value 设置值
get key 获取某个key的值
mset key1 value1 key2 value2 批量设置并且是原⼦的,可以⽤来减少⽹络时间消耗mget key1 key2 批量获取并且是原⼦的,可以⽤来减少⽹络时间消耗
incr key ⾃增指定key的值
decr key ⾃减指定key的值
incrby key value ⾃增指定数值
decrby key value ⾃减指定数值
incrbyfloat key floatvalue 增加指定浮点数,前⾯⼏个操作就可以⽤来实现计数器的功能。
setnx key value 如果不存在该key则可以设置成功,否则会失败,加上过期时间限制,则是redis实现分布式锁的⼀种⽅式(后⾯会提到)。
set key value xx 与前⾯相反,如果存在则设置成功,否则失败(相当于更新操作)
hash
其实我们可以理解 hash 为 ⼩型 Redis ,Redis 在底层实现上和 Java 中的 HashMap 差不多,都是使
⽤ 数组 + 链表 的⼆维结构实现的。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论