Redis之最细命令介绍

Redis 命令 Redis 命令用于在 redis 服务上执行操作。要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中。 阅读详情

Redis

  Redis是Remote Dirctionary Service的简称,即远程字典服务;

  Redis是内存数据库(数据都存储在内存中,mysql中主要数据存储在磁盘)、KV数据库(key-value)、数据结构数据库(value提供了丰富的数据结构);

  Redis应用非常广泛,如Twitter、暴雪娱乐、Github、Stack Overflow、腾讯、阿里、京东等等,很多中小型公司也在使用;

  Redis有16个数据库(字典),并且是单线程的,所以使用时只使用一个数据库。一个key只对应一个value;

使用Redis步骤

1、connect,客户端连接Redis;

2、auth,输入登录信息,用户名与密码;未设置密码则不需要输入密码;

3、select,选择要使用的数据库(Redis有16个数据库),不选择则默认使用第0个数据库

value

注意:Redis中的数字是从1开始,而不是从0开始的。负数代表倒数,如-1为倒数第一个、-2为倒数第二个

Redis中value编码

​

string

字符数组,该字符串是动态字符串 raw,字符串长度小于1M 时,加倍扩容;超过 1M 每次只多扩1M;字符串最大长度为 512M;

注意:redis 字符串是二进制安全字符串;可以存储图片,二进制协议等二进制数据;

基础命令

# 设置 key 的 value 值 
SET key val 
# 获取 key 的 value 
GET key 
# 执行原子加一的操作 
INCR key 
# 执行原子加一个整数的操作 
INCRBY key increment 
# 执行原子减一的操作 
DECR key 
# 执行原子减一个整数的操作 
DECRBY key decrement 
# 如果key不存在,这种情况下等同SET命令。 当key存在时,什么也不做 
SETNX key value 
# 删除 key val 键值对 
DEL key 
# 设置或者清空key的value(字符串)在offset处的bit值。 
SETBIT key offset value 
# 返回key对应的string在offset处的bit值 
GETBIT key offset 
# 统计字符串被设置为1的bit数. 
BITCOUNT key

存储结构

字符串长度小于等于 20 且能转成整数,则使用 int 存储;

字符串长度小于等于 44,则使用 embstr 存储;

字符串长度大于 44,则使用 raw 存储;

应用

# 对象存储
SET role:10001 '{["name"]:"mark",["sex"]:"male",["age"]:30}' 
GET role:10001
# 一般Redis客户端可以识别':',role:10001是指10001行的数据
# 这个value是json格式,如果经常需要修改还是用hash来存储比较好

# 累加器
# 统计阅读数 累计加1 
incr reads 
# 累计加100 
incrby reads 100

# 分布式锁 ,本例简单展示一下,后序文章中会具体讲解
# 加锁 
setnx lock 1 
# 释放锁 
del lock 
# 1. 排他功能 2. 加锁行为定义 3. 释放行为定义

# 位运算
# 月签到功能 10001 用户id 202106 2021年6月份的签到 6月份的第1天 
setbit sign:10001:202106 1 1 
# 计算 2021年6月份 的签到情况 
bitcount sign:10001:202106 
# 获取 2021年6月份 第二天的签到情况 1 已签到 0 没有签到 
getbit sign:10001:202106 2

list

双向链表实现,列表首尾操作(删除和增加)时间复杂度 O(1) ;查找中间元素时间复杂度为O(n) ;

列表中数据是否压缩的依据:

  1. 元素长度小于 48,不压缩;

  2. 元素压缩前后长度差不超过 8,不压缩;

C++后台开发系统学习地址:C/C++Linux服务器开发高级架构师/C++后台开发架构师​

以下学习资料,C++后台开发面试题,教学视频,C++后台开发学习路线图,免费分享有需要的可以自行添加:学习资料群720209036 自取

​

基础命令

# 从队列的左侧入队一个或多个元素 
LPUSH key value [value ...] 
# 从队列的左侧弹出一个元素 
LPOP key 
# 从队列的右侧入队一个或多个元素 
RPUSH key value [value ...] 
# 从队列的右侧弹出一个元素 
RPOP key 
# 返回从队列的 start 和 end 之间的元素 0, 1 2 
LRANGE key start end 
# 从存于 key 的列表里移除前 count 次出现的值为 value 的元素
LREM key count value 
# 它是 RPOP 的阻塞版本,因为这个命令会在给定list无法弹出任何元素的时候阻塞连接 
BRPOP key timeout # 超时时间 + 延时队列

存储结构

/* Minimum ziplist size in bytes for attempting compression. */ 
#define MIN_COMPRESS_BYTES 48 

/* quicklistNode is a 32 byte struct describing a ziplist for a quicklist. 
* We use bit fields keep the quicklistNode at 32 bytes. 
* count: 16 bits, 
* max 65536 (max zl bytes is 65k, so max count actually < 32k). 
* encoding: 2 bits, RAW=1, LZF=2. 
* container: 2 bits, NONE=1, ZIPLIST=2. 
* recompress: 1 bit, bool, true if node is temporary decompressed for usage. 
* attempted_compress: 1 bit, boolean, used for verifying during testing. 
* extra: 10 bits, free for future use; pads out the remainder of 32 bits */ 
typedef struct quicklistNode { 
	struct quicklistNode *prev; 
	struct quicklistNode *next; 
	unsigned char *zl; 
	unsigned int sz; /* ziplist size in bytes */ 
	unsigned int count : 16; /* count of items in ziplist */ 
	unsigned int encoding : 2; /* RAW==1 or LZF==2 */ 
	unsigned int container : 2; /* NONE==1 or ZIPLIST==2 */ 
	unsigned int recompress : 1; /* was this node previous compressed? */ 
	unsigned int attempted_compress : 1; /* node can't compress; too small */ 				
	unsigned int extra : 10; /* more bits to steal for future usage */ 
} quicklistNode; 

typedef struct quicklist { 
	quicklistNode *head; quicklistNode *tail; 
	unsigned long count; /* total count of all entries in all ziplists */ 
	unsigned long len; /* number of quicklistNodes */ 
	int fill : QL_FILL_BITS; /* fill factor for individual nodes */ 
	unsigned int compress : QL_COMP_BITS; /* depth of end nodes not to compress;0=off */ 
	unsigned int bookmark_count: QL_BM_BITS; quicklistBookmark bookmarks[]; 
} quicklist;

应用

# 栈(先进后出 FILO)
LPUSH + LPOP 
# 或者 
RPUSH + RPOP

# 队列(先进先出 FIFO)
LPUSH + RPOP 
# 或者 
RPUSH + LPOP

# 阻塞队列(blocking queue)
LPUSH + BRPOP 
# 或者 
RPUSH + BLPOP

异步消息队列:

操作与队列一样,但是在不同系统间;

hash

散列表,在很多高级语言当中包含这种数据结构;c++ unordered_map 通过 key 快速索引value;

基础命令

# 获取 key 对应 hash 中的 field 对应的值 
HGET key field 
# 设置 key 对应 hash 中的 field 对应的值 
HSET key field value 
# 设置多个hash键值对 
HMSET key field1 value1 field2 value2 ... fieldn valuen 
# 获取多个field的值 
HMGET key field1 field2 ... fieldn 
# 给 key 对应 hash 中的 field 对应的值加一个整数值 
HINCRBY key field increment 
# 获取 key 对应的 hash 有多少个键值对 
HLEN key 
# 删除 key 对应的 hash 的键值对,该键为field 
HDEL key field

存储结构

  节点数量大于 512(hash-max-ziplist-entries) 或所有字符串长度大于 64(hash-max-ziplistvalue),则使用 dict 实现;

  节点数量小于等于 512 且有一个字符串长度小于 64,则使用 ziplist 实现;

应用

# 存储对象
{
	hmset hash:10001 name mark age 18 sex male 
# 与 string 比较 
	set hash:10001 '{["name"]:"mark",["sex"]:"male",["age"]:18}' 
# 假设现在修改 mark的年龄为19岁 

# hash: 
	hset hash:10001 age 19 
# string: 
	get role:10001 
	# 将得到的字符串调用json解密,取出字段,修改 age 值 
	# 再调用json加密 
	set role:10001 '{["name"]:"mark",["sex"]:"male",["age"]:19}'
}

# 购物车
{
# 将用户id作为 key 
# 商品id作为 field 
# 商品数量作为 value 
# 注意:这些物品是按照我们添加顺序来显示的; 

# 添加商品: 
	hset MyCart:10001 40001 1 
	lpush MyItem:10001 40001 

# 增加数量: 
	hincrby MyCart:10001 40001 1 
	hincrby MyCart:10001 40001 -1 # 减少数量1 

# 显示所有物品数量: 
	hlen MyCart:10001 

# 删除商品: 
	hdel MyCart:10001 40001 
	lrem MyItem:10001 1 40001 

# 获取所有物品: 
	lrange MyItem:10001 
# 40001 40002 40003 
	hget MyCart:10001 40001 
	hget MyCart:10001 40002 
	hget MyCart:10001 40003
}

set

集合;用来存储唯一性字段,不要求有序;

基础命令

# 添加一个或多个指定的member元素到集合的 key中 
SADD key member [member ...] 
# 计算集合元素个数 
SCARD key 

# 返回key中所有value
SMEMBERS key 
# 返回成员 member 是否是存储的集合 key的成员 
SISMEMBER key member 

# 随机返回key集合中的一个或者多个元素,不删除这些元素 
SRANDMEMBER key [count] 
# 从存储在key的集合中移除并返回一个或多个随机元素 
SPOP key [count] 

# 返回一个集合与给定集合的差集的元素 
SDIFF key [key ...] 
# 返回指定所有的集合的成员的交集 
SINTER key [key ...] 
# 返回给定的多个集合的并集中的所有成员 
SUNION key [key ...

存储结构

  元素都为整数且节点数量小于等于 512(set-max-intset-entries),则使用整数数组存储;

  元素当中有一个不是整数或者节点数量大于 512,则使用字典存储;

应用

# 抽奖
{
# 添加抽奖用户 
	sadd Award:1 10001 10002 10003 10004 10005 10006 
	sadd Award:1 10009 
# 查看所有抽奖用户 
	smembers Award:1 
# 抽取多名幸运用户 
	srandmember Award:1 10 
}

# 共同关注
{
	sadd follow:A mark king darren mole vico 
	sadd follow:C mark king darren 
	sinter follow:A follow:C
}

# 推荐好友
{
	sadd follow:A mark king darren mole vico 
	sadd follow:C mark king darren 
	# C可能认识的人: 
	sdiff follow:A follow:C
}

zset

有序集合;用来实现排行榜;它是一个有序唯一;

基础命令

# 添加到键为key有序集合(sorted set)里面 
ZADD key [NX|XX] [CH] [INCR] score member [score member ...] 
# 从键为key有序集合中删除 member 的键值对 
ZREM key member [member ...] 
# 返回有序集key中,成员member的score值 
ZSCORE key member 
# 为有序集key的成员member的score值加上增量increment 
ZINCRBY key increment member 
# 返回key的有序集元素个数 
ZCARD key 
# 返回有序集key中成员member的排名 
ZRANK key member 
# 返回存储在有序集合key中的指定范围的元素 order by id limit 1,100 
ZRANGE key start stop [WITHSCORES] 
# 返回有序集key中,指定区间内的成员(逆序) 
ZREVRANGE key start stop [WITHSCORES]

存储结构

节点数量大于 128或者有一个字符串长度大于64,则使用跳表(skiplist);

节点数量小于等于128(zset-max-ziplist-entries)且所有字符串长度小于等于64(zset-maxziplist-value),则使用 ziplist 存储;

数据少的时候,节省空间; O(n)

数量多的时候,访问性能;O(1) o(logn)

应用

# 热榜
{
# 点击新闻: 
	zincrby hot:20210601 1 10001 
	zincrby hot:20210601 1 10002 
	zincrby hot:20210601 1 10003 
	zincrby hot:20210601 1 10004 
	zincrby hot:20210601 1 10005 
	zincrby hot:20210601 1 10006 
	zincrby hot:20210601 1 10007 
	zincrby hot:20210601 1 10008 
	zincrby hot:20210601 1 10009 
	zincrby hot:20210601 1 10010 
# 获取排行榜: 
	zrevrange hot:20210601 0 9 withscores
}

# 延时队列
# 	  将消息序列化成一个字符串作为 zset 的 member;这个消息的到期处理时间作为 score,
# 然后用多个线程轮询 zset 获取到期的任务进行处理。
{
def delay(msg): 
	msg.id = str(uuid.uuid4()) #保证 member 唯一 
	value = json.dumps(msg) 
	retry_ts = time.time() + 5 # 5s后重试 
	redis.zadd("delay-queue", retry_ts, value)

# 使用连接池 
def loop(): 
	while True: 
		values = redis.zrangebyscore("delay-queue", 0, time.time(), start=0, num=1)
		if not values: 
			time.sleep(1) 
			continue 
		value = values[0] 
		success = redis.zrem("delay-queue", value) 
		if success: 
			msg = json.loads(value) 
			handle_msg(msg) 
# 缺点:loop 是多线程竞争,两个线程都从zrangebyscore获取到数据,但是zrem一个成功一个失 败
# 优化:为了避免多余的操作,可以使用lua脚本原子执行这两个命令 
# 解决:漏斗限流
}

# 时间窗口限流
# 	系统限定用户的某个行为在指定的时间范围内(动态)只能发生N次;
{
# 指定用户 user_id 的某个行为 action 在特定时间内 period 只允许发生做多的次数 max_count

local function is_action_allowed(red, userid, action, period, max_count) 
	local key = tab_concat({"hist", userid, action}, ":") 
	local now = zv.time() 
	red:init_pipeline() 
	# 记录行为 
	red:zadd(key, now, now) 
	# 移除时间窗口之前的行为记录,剩下的都是时间窗口内的记录 
	red:zremrangebyscore(key, 0, now - period *100) 
	# 获取时间窗口内的行为数量 
	red:zcard(key) 
	# 设置过期时间,避免冷用户持续占用内存 时间窗口的长度+1秒 
	red:expire(key, period + 1) 
	local res = red:commit_pipeline() 
	return res[3] <= max_count
end
# 维护一次时间窗口,将窗口外的记录全部清理掉,只保留窗口内的记录; 
# 缺点:记录了所有时间窗口内的数据,如果这个量很大,不适合做这样的限流;漏斗限流 
# 注意:如果用 key + expire 操作也能实现,但是实现的是熔断,维护时间窗口是限流的功能;
}

分布式定时器:

     生产者将定时任务 hash 到不同的 redis 实体中,为每一个 redis 实体分配一个 dispatcher 进程,用来定时获取 redis 中超时事件并发布到不同的消费者中。

参考资料

推荐一个零声教育C/C++后台开发的免费公开课程,个人觉得老师讲得不错,分享给大家:C/C++后台开发高级架构师,内容包括Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习

OBD诊断协议:OBDⅡ (SAE J1979) 和 OBDonUDS (SAE J1979-2) 和ZEV OBD技术架构的详细对比 摘要:文章对比了2025年最新OBD技术标准(SAEJ1979系列)的三大架构:传统OBD-II(已淘汰)、OBDonUDS(燃油/混动车)和ZEVOBD(新能源车)。核心发现:1)OBDonUDS与ZEVOBD共享UDS协议栈和DoIP通信标准,仅应用层数据(DID/DTC)不同;2)物理层统一为CAN+以太网,支持远程诊断和OTA;3)诊断工具需同时兼容J1979-2/3数据库。技术演进呈现"协议统一化、数据专用化"趋势,2027年后所有新车将强制采用新标准。 阅读详情

相关推荐

XTDrone平台FAST-LIO2与ego-planner结合路径规划部署

之前做了XTDrone平台FAST-LIO2的部署现在将其结合ego-planner进行导航规划,之前查看教程是使用视觉进行定位导航的,现在重新学习。修改advanced_param_xtdrone.xml,这里有视觉信息,不修改会报错显示为输入视觉话题信息。怎么描述 ,感觉当时觉得很难的问题突然就给解决了,一顿复杂,最近勤更新吧,继续开始学习。还有一个想法就是两个rviz结合在一起启动,写了一个demo,融合的不太好感觉额。改为只使用雷达点云,这里仿真的话题是/scan。

m0_56093217的博客 1083

Redis实现消息队列的基本指令

Redis利用PUB/SUB和Stream实现消息队列的功能以及相关的指令进行记录

pshdhx的博客 1157

YOLOV8主干改进方法:C2f-Dual——DualConv轻量化双卷积设计(附改进代码)

DualConv是一种创新的卷积网络结构,旨在构建轻量级的深度神经网络。它通过结合3×3和1×1的卷积核处理相同的输入特征映射通道,优化了信息处理和特征提取。DualConv利用组卷积技术高效排列卷积滤波器,大大降低了计算成本和参数数量。

m0_74890428的博客 4700

php redis 队列抢红包_一篇学会redis阻塞队列在php的正确使用

在捣鼓swoole结合redis做队列时碰到阻塞队列与无阻塞取数的疑惑,遂找了很多资料,发现很多想当然的PHPer的写法都是想当然的,进而导致阻塞和不阻塞没什么两样,直到看到下面这篇文章的用法,如醍醐灌顶……经测试在PHP和swoole中完全支持这种写法。要点如下:关于阻塞的正确理解:1、阻塞,指的是brpop语句会阻塞住程序,不让其继续往下执行,像这里如果队列集为空的时候,就会占着不执行下一条语...

weixin_33568172的博客 389

双卡RTX 3090实战:基于vLLM高效部署Qwen2.5-14B BF16大模型的完整指南

本文提供了在双卡RTX 3090上使用vLLM推理框架高效部署Qwen2.5-14B BF16大模型的完整实战指南。内容涵盖硬件配置、系统环境准备、vLLM核心原理与安装、模型获取、详细部署步骤(包括脚本启动与API服务),以及性能调优与避坑技巧,旨在帮助开发者充分利用硬件性能,实现稳定、高速的本地大模型推理服务。

yy01234的博客 1512

谈谈人大金仓数据库

人大金仓数据库(Kingbase)是国产自主研发的关系型数据库管理系统,兼容主流数据库语法,支持高并发、高安全性及国产化适配。该数据库提供完整的安装部署方案,包括环境准备、初始化配置和验证流程,并配备专业的数据迁移工具(KDMS)实现从Oracle/MySQL等数据库的平滑迁移。系统提供KStudio等图形化管理工具,支持性能监控、备份恢复等运维功能,同时具备性能调优、高可用架构、分区表管理等高级特性,满足政府、金融等领域的企业级需求。

蜚鸣的博客 2098

Redis 消息队列(简单版)

1、操作数据类型:list 2、操作命令:Redis 列表(List) // 将一个或多个值插入到列表头部 LPUSH key value1 [value2] // 移除列表的最后一个元素,返回值为移除的元素 RPOP key 3、实现原理:从表头生产消息,从表末尾消费消息 使用 LPUSH key jsonMessage 把消息保存到表头 使用 RPOP key 移除并获取队列最末尾的消息 4、问题 redis 消息队列没有确认机制,难免会有消息丢失情况 ...

myinsert的博客 370

奇异值分解(SVD)C++实现

奇异值分解SVD(紧奇异值分解,截断奇异值分解)C++实现

weixin_45804601的博客 4172

怎么使用 Redis 实现消息队列?

List:适合简单的消息队列,支持阻塞操作。Pub/Sub:适合实时消息传递,不保证消息的持久性和可靠性。

wupanP的博客 480

基于STC8G1K08A单片机的EC11旋转编码器控制(江科大同款,代码可直接使用)

本文介绍了STC8G系列单片机与EC11旋转编码器的接口实现方案。硬件方面详细说明了EC11编码器的机械结构、电气特性及与单片机的典型连接电路,包括上拉电阻和消抖设计。软件部分重点阐述了状态检测算法,通过状态机和查找表实现方向判断,采用中断方式检测信号变化,并配合定时器进行软件消抖处理。文章还提供了完整的代码实现,包括GPIO初始化、中断服务函数、状态转换逻辑等关键模块,展示了如何通过串口输出验证旋转计数。最后讨论了抗抖动优化、高低速应用场景等实际问题解决方案。该方案在菜单导航、参数调节等场景中具有实用价值

weixin_74013772的博客 322

QT应用编程: Win10系统下QT5.12搭建Android开发环境(配件齐全)

在win10系统下,搭建QT5.12.6 的Android开发环境。

7688

Redis数据结构与命令 列表(List)消息队列、任务列表、实现栈和队列

RedisLists是一种简单的字符串列表,按插入顺序排序。它支持从两端(左端和右端)插入和弹出元素,使其成为实现栈(后进先出)和队列(先进先出)的理想选择。RedisLists内部采用双向链表(linkedlist)和压缩列表(ziplist)两种数据结构,根据列表的长度和元素大小动态选择。RedisLists作为Redis提供的核心数据结构之一,凭借其灵活的双端操作和丰富的命令支持,在实现消息队列、任务列表、栈和队列等场景中发挥着重要作用。

Flying_Fish_roe的博客 2089

Unreal从入门到精通之 UE4 vs UE5 VR性能优化实战

这篇文章分享了UE5 VR项目的性能优化经验。作者通过对比UE4和UE5的VR模板性能,发现UE5默认帧率只有45FPS,远低于UE4的100FPS。主要性能瓶颈来自Lumen全局光照、虚拟阴影贴图等新特性。文章详细列出了12项关键优化设置,包括禁用Lumen、关闭虚拟阴影、使用前向渲染等,并分析了各项调整对性能的影响程度。特别指出删除默认的VolumetricCloud可立即提升5帧。最后建议根据场景需求平衡画质与性能,对于高帧率要求的VR项目,可能需要谨慎使用UE5或关闭其部分高级渲染功能。

TxNet 1383

Redis 命令行 redis-cli 介绍

redis-cli 是 Redis 自带的命令行工具,是运维和开发人员常用的工具,本篇文章将介绍它的使用技巧和一些有趣的功能。

分享既学习 2248

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Redis 基础详细介绍(Redis简单介绍,命令行客户端,Redis 命令,Java客户端)

Redis是一款高性能的键值存储数据库,支持多种数据结构如String、Hash、List等。它具有原子性操作、持久化、主从复制等特性,适用于缓存、消息队列等场景。Redis通过内存存储实现高速读写,并提供了丰富的命令操作,如KEYS查询、DEL删除、EXPIRE设置过期时间等。String类型支持字符串、整型和浮点型数据,Hash类型适合存储对象属性。Redis采用层级格式管理Key,避免命名冲突。List类型类似双端队列,可用于实现栈、队列等数据结构。Redis还提供命令行客户端redis-cli,方便

qq_75103498的博客 1616

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Redis命令介绍

如果 key 已经存在并且是一个字符串, APPEND 命令将 指定value 追加到改 key 原来的值(value)的末尾。对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。将 key 所储存的值加上给定的浮点增量值(increment)。

weixin_57763462的博客 4909

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Redis连接命令,Redis安全策略,Redis客户端(client)命令,Redis服务器命令

目录 Redis连接命令详解 Redis连接命令 连接命令应用 Redis安全策略 命令配置密码 手动配置密码 指令安全 端口安全 SSH代理 Redis客户端(client)命令 Redis IO多路复用 客户端最大连接数 常用命令 命令应用应用 Redis服务器命令 常用服务器命令 基本命令演示 Redis连接命令详解 Redis 连接命令是主要用于验证 Redis 服务器的连接状态,比如验证客户端与 Redis 服务器是否连接成功,以及检查服务器运行状态,以.

youandme520的专栏 4256

Redis JSON介绍和命令大全

更多使用在存储数据场景下,也是泛滥的场景,如mysql、es、mongodb、redis中,json似乎包罗万象了。:json可以说是在http接口返回值的网红,之所以说是网红,是因为之前不是json,之后当然也就未可知也。实际上在内部的rpc调用,也有用json传输的,不过这比较小众。JSONPath是一种用于从JSON文档中提取信息的查询语言,类似于XML的XPath。这不是好事,灵活性的提升必定伴随着其他如规范性、稳定性等问题的到来,的内存还是挺恐怖的,哈哈哈,用不上还是用。

李习的博客 1676

【Redis】贰 —— Redis基本命令

本文对于Redis中的一些命令进行了介绍以及使用案例

2401_86777036的博客 3090

Redis监控命令和指标介绍

本文介绍了Redis监控的关键命令与性能指标,涵盖INFO命令获取服务器整体状态,包括内存、连接、持久化、复制等多方面信息;通过MONITOR命令实现实时命令追踪,揭示服务器活动详情;利用SLOWLOG命令监控慢查询以识别性能瓶颈。针对集群与Sentinel环境,如何使用SENTINEL MASTERS和CLUSTER NODES命令检查主从同步与集群健康状态。监控内存指标如used_memory与mem_fragmentation_ratio的重要性,助力快速定位问题,优化性能,确保服务稳定。

庄的博客 2664

Redis 连接命令介绍

Redis 连接命令主要是用于连接 redis 服务。

StimmerLove的博客 2954

Redis安装介绍和一些通用命令

内存简单安装一下,以下是Linux下Redis的安装方法,我用的虚拟机FinalShell:。下载好压缩包,直接拖到虚拟机桌面。推荐移动到/opt目录下,期间如果提示权限不够记得切换权限输入su root,接下来就是移动操作解压完成后就安装相关依赖;安装过程可能出现的问题,这个错误表示系统无法连接到CentOS的软件仓库镜像站点。错误信息 "Could not resolve host:" 说明DNS解析失败,无法找到镜像服务器。安装好后验证一下是否成功,查看gcc版本号gcc -v。

weixin_46273120的博客 953

Redis 通用命令

Redis核心文件与基础操作指南 摘要:本文介绍了Redis的核心文件及其功能,包括服务器程序(redis-server)、修复工具(redis-check-aof/rdb)、哨兵程序(redis-sentinel)和客户端工具(redis-cli/benchmark)等。详细说明了Redis的配置文件、持久化文件和日志文件存储位置。重点讲解了redis-cli客户端的两种连接方式(交互式和命令式)及基本操作命令。文章还涵盖了Redis的全局命令,包括keys查询、exists判断、del删除、expire

Small_entreprene的博客 1263

Redis常见命令

贴心小建议:命令不要死记,学会查询就好啦Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网可以查看到不同的命令:当然我们也可以通过Help命令来帮助我们去查看命令。

Elusia-ForEver 1354

【Redis】​​Redis必学指南:最常用核心通用命令,除了GET与SET,你还知道那些?

Redis通用命令详解:掌握核心操作与最佳实践 本文系统介绍了Redis最常用的通用命令,包括SET/GET基础操作、高级命令如KEYS(慎用)、EXISTS、DEL、EXPIRE/TTL以及TYPE等。重点剖析了KEYS命令在生产环境的使用风险,以及Redis的两种关键过期策略:定期删除和惰性删除的协同工作机制。文章还探讨了键值类型识别和多键批量操作技巧,为开发者提供了Redis数据管理的实用指南。通过理解这些核心命令和底层机制,开发者可以更高效地使用Redis进行数据存储和缓存管理。

GGBond778的博客 940

常用的Redis命令介绍

关于redis的一些常用的命令解释

ozawacai的博客 736
上一篇: tcp协议栈实现,tcp定时器与滑动窗口实现
下一篇: 如何更有效的使用 Redis 缓存
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值