首页 > 数据库 >Redis常用命令

Redis常用命令

时间:2023-08-29 11:13:15浏览次数:39  
标签:Redis redis value m1 key 常用命令 集合

目录

起因

从标题来看,似乎这篇博文没有看下去的必要了,谁用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,value,m1,key,常用命令,集合
From: https://www.cnblogs.com/Naylor/p/17664244.html

相关文章

  • Redis基础
    1.Redis5种数据类型string(字符串)hash(哈希散列)list(列表)set(集合)zset(sortedset:有序集合)2.对应的基本操作2.1Stringvalue:最大为512Msetnamezhangsangetname2.2hash最多属性字段为2的32次方-1个hmsetuserid:1namezhangsanage1hmgetalluserid:1hmgetu......
  • 基于Redis的队列
    1.队列//发布@ApiOperation(value="put普通队列")@PostMapping("/queuePut")publicObjectput(@RequestBodyCommonMapRespDTOrespDTO){for(inti=0;i<20;i++){//队列RQueue<Object>queue=redissonClient.g......
  • Redis 入门篇
    1.初始Redis1.1认识NoSQL‍NoSql可以翻译做NotOnlySql(不仅仅是SQL),或者是NoSql(非Sql的)数据库。是相对于传统关系型数据库而言,有很大差异的一种特殊的数据库​,因此也称之为非关系型数据库。‍1.1.1结构化与非结构化‍​​1.1.2关系型与非关系型的差异存储方式......
  • redis 消息队列方案
    List实现消息队列使用LPUSH、RPOP左进右出或RPUSH、LPOP右进左出,实现消息顺序消费使用BLPOP、BRPOP这种阻塞式读取的命令,实现消息及时消费ack机制使用,使用index读取list的消息,正常消费完成后再使用POP删除//使用redission实现@Slf4j@ServicepublicclassQue......
  • Redis 缓存满了怎么办?
    Redis缓存使用内存来保存数据,随着需要缓存的数据量越来越大,有限的缓存空间不可避免地会被写满。此时,应该怎么办?本篇文章接下来就来聊聊缓存满了之后的数据淘汰机制。值得注意的是,在Redis中 过期策略和内存淘汰策略是两个完全不同的概念。Redis过期策略指的是Redis使用......
  • redis的2种持久化方式:aof和rdb
    redis的rdb和aof持久化方式的区别及使用场景原创 陈烨123 java知路 2023-07-0422:25 发表于湖北Redis提供了两种持久化方式:RDB(RedisDatabase)和AOF(AppendOnlyFile)。RDB持久化是通过周期性地将Redis数据集快照写入磁盘上的二进制文件实现的。在触发持久化时,Redis会......
  • Redis 为什么这么快?
    前言  作为一名后端软件工程师,工作中你肯定和Redis打过交道。但是Redis为什么快呢?很多人只能答出Redis因为它是基于内存实现的,但是对于其它原因都是模棱两可。那么今天就一起来看看是Redis为什么快吧:         Redis为什么这么快? 一、基于内......
  • Redis数据持久化介绍
    Redis存储配置数据持久化,开启aof后,配置了aof重写规则,但aof文件仍然持续增长,当aof数据文件增长过大时,需要进行手动清理。本文意为手动清理aof文件提供帮助。同时对rdb和aof数据存储进行说明。1. Redis数据持久化介绍1.1. RDB数据存储RDB(RedisDatabase)通过快照的形式将数据保......
  • Python分享之redis(3)
    3、List操作redis中的List在在内存中按照一个name对应一个List来存储lpush(name,values)#在name对应的list中添加元素,每个新的元素都添加到列表的最左边r.lpush("list_name",2)r.lpush("list_name",3,4,5)#保存在列表中的顺序为5,4,3,2rpush(name,values)#同lpush,但每个新的元素......
  • Redis缓存高可用集群(3.1)
    1、Redis集群方案比较哨兵模式在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般,特别是在主从切换的瞬间存在访问瞬断的情况......