Redis常用命令

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 总结一下Redis下常用的命令,一来温故知新,二来省去下次bd的时间。

[toc]

起因

从标题来看,似乎这篇博文没有看下去的必要了,谁用redis还敲命令行,不都是GUI嘛。

确实,GUI现在特别的好用,直观、高效还美观。

但是,在生产环境下GUI可能并没有那么香。。。。。。

事情是这样的,线上环境进行了大版本升级,然后一堆问题,我和一个运维同事一起排查问题,目的是快速并准确的查看redis中某key的生命周期以及各周期下的value。生产环境是国产化操作系统,而且还是内网,我们连过去还跳了两个跳板机。所以就只能用命令行,结果就是非经巴拉。。。。。。

也许最一开始学习Redis的时候命令行还真记得几个,但是长时间依赖GUI工具之后,大脑中再深刻的记忆也会随着时间消散。更何况这个职业本身就是快节奏、多加班、少睡眠。。。。。。

所以,想总结一下Redis下常用的命令,一来温故知新,二来省去下次bd的时间。

配置

bind

bind 配置可以配置多个,一般情况下建议将127和192都配置上。


bind 127.0.0.1 192.168.3.191
  • 127:redis-cli 工具打开的时候默认会通过127连接,配置这个方便本地使用,当然了,如果不配置的话,就需要 PS C:\Program Files\Redis> .\redis-cli.exe -h 192.168.3.191 -p 6379 这样连接了
  • 192:方便别的机器通过GUI工具或者代码进行连接,需要注意的是ip是不是静态ip

端口

默认端口 6379

连接

开启连接

如下命令:


redis-cli  -h  ip   -p   port   -a   "password"

解决中文乱码:


redis-cli  --raw  -h  ip   -p   port   -a   "password"

关闭连接

exit 或者 quit

命令

仅总结开发中常用的命令

key相关

  • del key
  • dump key:序列化key,返回序列化后的值
  • exists key:检查是否存在某key
  • expire key :为指定key设置过期事件,单位为秒
  • keys pattern:查询key,返回key名称。常用的查询:keys 查询所有,keys a 查询以a开头的key
  • persist key:移除key的过期时间,它将不会过期
  • ttl key :返回给定key剩余生存时间,单位为秒
  • randomkey:随机返回一个key
  • rename key newKeyName:修改key的名称为 newKeyName
  • renamenx key newKeyName:修改key名称,会校验新名称是否已存在
  • type key :返回key的数据类型

字符串相关

  • set key value :设置key 和value ,若key已经存在,将更新原来值为value
  • setnx key value:仅当key不存在时候才新增成功,防止将原有key的值覆盖了
  • get key
  • mget key1 key2:根据keys 批量获取值
  • getrange key startIndex endIndex:根据下标返回字符串值中的子字符
  • getset key value :将给定国key的值设置为value,并返回key的旧值
  • strlen key: 返回key所存储的字符串的长度,其实数字也可以返回长度
  • incr key:将key中存储的数字值增一,并返回增加后的值
  • incrby key 5:将key中存储的数字值增加5
  • decr key:将key中存储的数字值减一
  • decrby key 5:将key中存储的数字减5
  • append key value:如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾

hash相关

在 Redis 中, hash实际存储的方式是 key--->values(field:value),key是一个hash的名字,值由一系列的k-v集合组成。

  • hset key field value :为key增加一组数据
  • hsetnx key field value:只有在field不存在的时候,才为key增加一组数据
  • hmset key field1 value1 field2 value2:批量增加数据
  • hdel key field1 field2:删除key表中的字段,即删除k-v键值对
  • hexists key field:查看key中是否存在field字段
  • hget key field:获取key表中field键对应的值
  • hmget key field1 field2:获取key表中部分键对应的值
  • hgetall key :获取key表中所有的k-v对
  • hkeys key:获取key表中的所有键
  • hlen key:获取key表中的k-v对数量

List相关

  • rpush key value1 value2 :在列表尾添加一个或者多个元素
  • rpushx key value:向列表尾添加值,若key存在的话
  • lset key index value :设置指定索引处的元素值
  • rpop key :移除key列表中的最后一个元素
  • lpop key :移除key列表中的第一个元素
  • llen key : 获取列表长度
  • lrange key start end :获取指定索引范围内的元素
  • lindex key index:通过索引获取列表中的元素

Set相关

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

  • sadd key m1 m2:向集合添加一个或多个成员
  • scard key:获取集合元素数量
  • sismember key m1:判断key集合中是否存在 m1 这个成员
  • smembers key : 返回key集合中得所有成员
  • srem key m1 m2:移除key集合中得一个或多个元素

SortedSet相关

Redis 有序集合 和 集合 一样也是 string 类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个 double 类型的分数,redis 通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

  • zadd key s1 m1 s2 m2:向key 有序集合中添加一个或多个成员,s指分数,m是有序集合元素
  • zcard key :获取key有序集合得成员数量
  • zrange key startIndex endIndex :获取key有序集合中指定索引区间内得成员
  • zrangebyscore key min max : 获取key有序集合中指定分数区间内得成员
  • zrank key m1:获取key有序集合中m1成员得索引
  • zrem key m1 m2:移除key有序集合中得一个或多个元素
  • zremrangebyscore key min max :移除key有序集合中指定分数区间得所有成员
  • zscore key m1:获取key有序集合中 m1 成员得分数

GEO相关

Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 版本新增。Redis GEO 操作方法有:

  • geoadd key lon lat member :添加一个或多个地理位置的坐标,key为键,lon为经度,lat为纬度,member 是指此经纬度得名称,例如我们可以添加一个名为beijing得键,然后向这个key中添加一个值,值包含经纬度坐标和一个名称。
  • geopos key member :获取key键member名称得地理位置的坐标。
  • geodist key m1 m2:计算key键中 m1 ,m2两个位置之间的距离。
  • georadius:根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。
  • georadiusbymember:根据储存在位置集合里面的某个地点获取指定范围内的地理位置集合。
  • geohash:返回一个或多个位置对象的 geohash 值。

服务器命令

Redis 服务器命令主要是用于管理 redis 服务。

  • client list:列出连接到本redis服务得客户端列表
  • dbsize:获取当前数据库中key得数量
  • info:查询服务器详细信息
  • monitor:实时打印出 Redis 服务器接收到的命令,调试用

引用

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
NoSQL Java Redis
redis的基本命令,并用netty操作redis(不使用springboot或者spring框架)就单纯的用netty搞。
这篇文章介绍了Redis的基本命令,并展示了如何使用Netty框架直接与Redis服务器进行通信,包括设置Netty客户端、编写处理程序以及初始化Channel的完整示例代码。
64 1
redis的基本命令,并用netty操作redis(不使用springboot或者spring框架)就单纯的用netty搞。
|
1月前
|
存储 NoSQL Java
Redis命令:列表模糊删除详解
通过本文的介绍,我们详细探讨了如何在Redis中实现列表的模糊删除。虽然Redis没有直接提供模糊删除命令,但可以通过组合使用 `LRANGE`和 `LREM`命令,并在客户端代码中进行模糊匹配,来实现这一功能。希望本文能帮助你在实际应用中更有效地操作Redis列表。
48 0
|
2月前
|
缓存 NoSQL 测试技术
Redis如何解决频繁的命令往返造成的性能瓶颈!
Redis如何解决频繁的命令往返造成的性能瓶颈!
|
2月前
|
缓存 NoSQL Redis
Redis命令:列表模糊删除详解
Redis命令:列表模糊删除详解
73 3
|
2月前
|
NoSQL 关系型数据库 MySQL
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
本文全面阐述了Redis事务的特性、原理、具体命令操作,指出Redis事务具有原子性但不保证一致性、持久性和隔离性,并解释了Redis事务的适用场景和WATCH命令的乐观锁机制。
340 0
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
|
2月前
|
NoSQL Redis 数据安全/隐私保护
Redis 命令
10月更文挑战第15天
31 0
|
3月前
|
监控 NoSQL Redis
redis-server --service-install redis.windows.conf --loglevel verbose 命令的作用是什么?
redis-server --service-install redis.windows.conf --loglevel verbose 命令的作用是什么?
140 3
|
3月前
|
存储 缓存 NoSQL
Redis 过期删除策略与内存淘汰策略的区别及常用命令解析
Redis 过期删除策略与内存淘汰策略的区别及常用命令解析
81 0
|
4月前
|
存储 消息中间件 NoSQL
Redis命令详解以及存储原理
Redis命令详解以及存储原理
|
5月前
|
存储 缓存 NoSQL
Redis 全局通用命令整理
Redis 全局通用命令整理
71 10

相关产品

  • 云数据库 Tair(兼容 Redis)