Redis学习

Redis全面深入学习目录 这篇Redis学习目录提供了系统全面的Redis知识体系,从基础到高级特性、架构设计、运维监控、应用开发和生态扩展六个维度展开。核心内容包括:Redis数据类型与持久化机制、事务与Lua脚本、主从复制与集群架构、性能优化与监控方案、客户端开发与缓存设计模式,以及模块开发与未来趋势。特别对Redis集群进行了深度解析,涵盖数据分片、节点通信、请求重定向等关键技术细节,并提供了生产环境实践指导。本教程适用于希望全面掌握Redis的开发者和架构师。 阅读详情

前言:

相比于原来的MySQL关系型数据库,redis是一种key-value的非关系型数据库。性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

redis通用命令:

KEYS * 查看当前所有key(匹配:key *1)

exists key判断某个key是否存在

type key查看你的 key是什么类型

del key删除指定的key数据·

unlink key根据value选择非阻塞删除,仅将keys 从 keyspace元数据中删除,真正的删除会在后续异步操作。

expire key 10 10秒钟:为给定的 key设置过期时间

有多少秒过期,-1表示永不过期,-2表示已过期

Redis 字符串命令

SET key value 
#设置指定的key值`

GET key 
#获取指定的`key`

GETRANGE key start end 
#返回key中字符串的字符集

GETSET key value
#将给定 key 的值设为 value ,并返回 key 的旧值(old value)。

GETBIT key offset
#对 key 所储存的字符串值,获取指定偏移量上的位(bit)。

MGET key1 [key2..]
#获取所有(一个或多个)给定 key 的值。

SETBIT key offset value
#对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。

SETEX key seconds value
#将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。

SETNX key value
#只有在 key 不存在时设置 key 的值。

SETRANGE key offset value
#用 value 参数覆写给定 key 所储存的字符串值,从偏移量offset 开始。

STRLEN key
#返回 key 所储存的字符串值的长度。

MSET key value [key value ...]
#同时设置一个或多个 key-value 对。

MSETNX key value [key value ...]
#同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。

INCR key
#将 key 中储存的数字值增一。

INCRBY key increment
#将 key 所储存的值加上给定的增量值(increment) 。

INCRBYFLOAT key increment
#将 key 所储存的值加上给定的浮点增量值(increment)。

DECR key
#将 key 中储存的数字值减一。

DECRBY key decrement
#key 所储存的值减去给定的减量值(decrement) 。

APPEND key value
#如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。

在这里插入图片描述

Redis hash 命令

hash是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象

HDEL key field1 [field2]
#删除一个或多个哈希表字段

HEXISTS key field
#查看哈希表 key 中,指定的字段是否存在。

HGET key field
#获取存储在哈希表中指定字段的值。

HGETALL key
#获取在哈希表中指定 key 的所有字段和值

HINCRBY key field increment
#为哈希表 key 中的指定字段的整数值加上增量 increment 。

HINCRBYFLOAT key field increment
#为哈希表 key 中的指定字段的浮点数值加上增量 increment 。

HKEYS key
#获取所有哈希表中的字段

HLEN key
#获取哈希表中字段的数量

HMGET key field1 [field2]
#获取所有给定字段的值

HMSET key field1 value1 [field2 value2 ]
#同时将多个 field-value (域-值)对设置到哈希表 key 中。

HSET key field value
#将哈希表 key 中的字段 field 的值设为 value 。

HSETNX key field value
#只有在字段 field 不存在时,设置哈希表字段的值。

HVALS key
#获取哈希表中所有值。

HSCAN key cursor [MATCH pattern] [COUNT count]
#迭代哈希表中的键值对。

在这里插入图片描述

Redis 列表命令

LINDEX key index
#通过索引获取列表中的元素

LINSERT key BEFORE|AFTER pivot value
#在列表的元素前或者后插入元素

LLEN key
#获取列表长度

LPOP key
#移出并获取列表的第一个元素

LPUSH key value1 [value2]
#将一个或多个值插入到列表头部

LPUSHX key value
#将一个值插入到已存在的列表头部

LRANGE key start stop
#获取列表指定范围内的元素

LREM key count value
#移除列表元素

LSET key index value
#通过索引设置列表元素的值

LTRIM key start stop
#对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。

在这里插入图片描述

在这里插入图片描述

Redis 集合命令

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的

Redis 中集合是通过哈希表实现的,所以添加,删除,查找速度很快

SADD key member1 [member2]
#向集合添加一个或多个成员

SCARD key
#获取集合的成员数

SDIFF key1 [key2]
#返回第一个集合与其他集合之间的差异。

SDIFFSTORE destination key1 [key2]
#返回给定所有集合的差集并存储在 destination 中

SINTER key1 [key2]
#返回给定所有集合的交集

SINTERSTORE destination key1 [key2]
#返回给定所有集合的交集并存储在 destination 中

SISMEMBER key member
#判断 member 元素是否是集合 key 的成员

SMEMBERS key
#返回集合中的所有成员

SMOVE source destination member
#将 member 元素从 source 集合移动到 destination 集合

SPOP key
#移除并返回集合中的一个随机元素

SRANDMEMBER key [count]
#返回集合中一个或多个随机数

SREM key member1 [member2]
#移除集合中一个或多个成员

SUNION key1 [key2]
#返回所有给定集合的并集

SUNIONSTORE destination key1 [key2]
#所有给定集合的并集存储在 destination 集合中


下面是对上述说明的具体实现
在这里插入图片描述

Redis 有序集合命令

有序集合的成员是唯一的,但分数(score)却可以重复

ZADD key score1 member1 [score2 member2]
#向有序集合添加一个或多个成员,或者更新已存在成员的分数

ZCARD key
#获取有序集合的成员数

ZCOUNT key min max
#计算在有序集合中指定区间分数的成员数

ZINCRBY key increment member
#有序集合中对指定成员的分数加上增量 increment

ZRANGE key start stop [WITHSCORES]
#通过索引区间返回有序集合指定区间内的成员

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
#通过分数返回有序集合指定区间内的成员

ZRANK key member
#返回有序集合中指定成员的索引

ZREM key member [member ...]
#移除有序集合中的一个或多个成员

ZREMRANGEBYRANK key start stop
#移除有序集合中给定的排名区间的所有成员

ZREMRANGEBYSCORE key min max
#移除有序集合中给定的分数区间的所有成员

ZREVRANGE key start stop [WITHSCORES]
#返回有序集中指定区间内的成员,通过索引,分数从高到低

ZREVRANGEBYSCORE key max min [WITHSCORES]
#返回有序集中指定分数区间内的成员,分数从高到低排序

ZREVRANK key member
#返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序

ZSCORE key member
#返回有序集中,成员的分数值

Redis 中BitMap操作

此操作可以用来进行数据量很大的统计如在线人数等

SETBIT key offeset value 
#设置bitmap key为键 offeset为偏移量 value是值(0或1)返回offeset的原始值

GETBIT key offset
#返回key对应的字符串,offset位置的位

BITCOUNT key [start end]
#统计给定给定范围内bit为1的值

BITPOS key bit [start [end]]
#返回第一个bit值(0或1)的偏移量

BITOP operation destkey key [key ...]
#对多个字符串进行操作并将结果保存到destkey中,对Bitmap做逻辑与、或、异或、非操作

Redis事务相关:

特性:

1.单独的隔离操作

事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。“

2.没有隔离级别的概念

队列中的命令没有提交之前都不会实际被执行,因为事务提交前任何指令都不会被实际执行·

3.不保证原子性

事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚·

事务命令:

multi开启命令标记一个事务的开始

然后每操作一次都会显示:

QUEUED

最终由exec命令触发事务,某一命令执行出错时事务也不会终止

discard取消事务放弃执行事务的命令

WATCH key ...监视key,即如果事务执行时key被改动,事务将被打断

UNWATCH取消所有的监视

几何非线性-屈曲分析 结构系统的破坏分为两种,一类是因材料软化而引起的强度破坏,另一类是几何软化使得结构的几何形状发生极大变化,从而使结构丧失承载能力。在材料力学中是这样定义压杆失稳的:中心受压直杆(理想模型)在直线状态下平衡,由稳定平衡转化为不稳定平衡时所受的轴向压力的界限值,称为临界压力。中心受压直杆在临界压力的作用下,其直线形态的平衡开始丧失稳定性,简称为失稳。显然,这个定义只使用于理想的压杆模型,那么关于失稳和屈曲是否存在一般性定义呢? 阅读详情

相关推荐

RU.EXE实用指南:从基础操作到高级调试技巧

本文是RU.EXE(RW Everything)的实用指南,详细介绍了这款硬件调试工具从基础操作到高级技巧的全过程。文章阐述了RU.EXE作为直接读写硬件寄存器、内存和PCI配置空间的强大工具,如何帮助硬件工程师和开发人员高效进行底层系统调试与故障排查,并强调了安全操作的重要性。

weixin_29228203的博客 278

redis 保存 array list 区别_用redis做异步队列,原来还可以这样

Redis设计主要是用来做缓存的,但是由于它自身的某种特性使得它可以用来做消息队列。它有几个阻塞式的API可以使用,正是这些阻塞式的API让其有能力做消息队列;另外,做消息队列的其他特性例如FIFO(先入先出)也很容易实现,只需要一个list对象从头取数据,从尾部塞数据即可;Redis能做消息队列还得益于其list对象blpop brpop接口以及Pub/Sub(发布/订阅)的某些接口,它们都是阻...

weixin_39748773的博客 388

光猫桥接后网速不升反降?可能是你的路由器在“偷懒”!

本文详细分析了光猫桥接后网速不升反降的常见原因,包括路由器性能不足、MTU/MSS值设置错误等,并提供了四个关键排查步骤和路由器选购指南。通过优化PPPoE拨号设置和硬件配置,帮助用户解决网速下降问题,提升家庭网络性能。

hqmln的博客 611

redis 保存 array list 区别_Redis科普篇

这是学习Java的小姐姐第53篇原创文章前言hello,好久不见,又断更了一段时间。同事大部分离职了,但是活还是一样,所以只能硬着头皮顶上。现在总算歇会了,决定开启Redis源码系列,希望不要啪啪啪打脸。什么是redis?Redis是一种基于键值对(key-value)的NoSQL数据库,主要的数据类型包括String(字符串),hash(哈希),list(列表),set(集合),zse...

weixin_39865625的博客 786

KiCad插件安装太慢?试试华秋版,再手把手教你装这5个实用插件

本文介绍了KiCad华秋发行版如何解决插件安装慢的问题,并详细推荐了5个实用插件及其安装方法。华秋版优化了国内用户的下载速度,预装了常用扩展包,包括BOM生成器、3D模型增强工具等,显著提升PCB设计效率。

weixin_29184075的博客 547

DLMS—Cryptographic algorithms—(Green-Book)加密算法

密码学是数学的一个分支,基于数据的转换,并且可以用来提供多种安全服务:保密性、数据完整性、认证、授权和不可否认性。密码学依赖于两个基本组成部分:算法(或密码学方法)和密钥。算法是一个数学函数,而密钥是在转换过程中使用的参数。密码算法和密钥用于对数据应用密码保护(例如,加密数据或生成数字签名),以及移除或检查保护(例如,解密加密的数据或验证数字签名)。密码哈希函数:这类函数不需要密钥(尽管它们可以以使用密钥的模式使用)。哈希函数通常用作算法的一个组成部分,以提供安全服务。见9.2.3.2节。对称密钥算法。

一个bug是bug,多个bug能work 1706

Redis常用五大数据类型

了解Redis五大数据类型之前我们先来了解一个Redis的键(key) Redis键(key)

兮遥 683

基于Java的高校校园点餐系统

本文介绍了一个基于Java技术开发的高校校园点餐系统,该系统以B/S结构为基础,采用MySQL作为数据库,实现了一个高效、便捷的在线点餐平台。系统主要面向三类用户:管理员、用户和食堂工作人员,提供包括用户管理、食堂管理、菜单管理、订单管理等在内的多项功能。通过系统的具体测试,验证了其可行性和有效性,为高校师生提供了一个科学化、系统化的点餐服务。高校校园点餐系统的开发和实现,不仅提高了校园餐饮服务的效率和质量,也为师生提供了一个更加便捷的点餐体验。

a632341031的博客 838

Redis的数据类型及基础命令

1、简介 Redis是一个开源、内存中的数据结构存储系统,他可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,内置 复制、LUA脚本、LRU驱动事件、事务和不同级别磁盘持久化,可通哨兵(Sentinel)和自动分区(Cluster)提高可用性。 2、数据类型 Redis本身就是一个Map,其中所有的数据都是采用key:value的形式存储。所有的key都是采用String类型(表名​:id:​idvalue:业务),value的部分的类型就是我们常说的Redis 5中数据类型。 2.1、字符串(S

T_chuxin的博客 238

三极管简单振荡电路实现:从零开始的实战示例

通过一个基础实例,手把手教你如何利用三极管构建简单的振荡电路,深入理解三极管在实际电路中的工作原理与应用技巧。

weixin_32836713的博客 1202

Langchain分割方式

【代码】Langchain分割方式。

2895

读《Redis设计与实现》—Redis入门与数据结构

前言 在互联网和大数据时代,特别是分布式系统大行其道的今天,Redis是一个广泛被应用在我们系统之中,不论是传统的ERP、CRM还是互联网高并发的系统。Redis是一款开源、高性能、基于C语言开发的键值对存储的NoSql数据库。所以我们应该需要对Redis有更加深入的了解,下面很多都是Copy了《Redis设计与实现(第二部)》中的内容,因为书中肯定总结的会更加好。 概述 优势 Redis...

永远不会懂 558

建模simulink - 手把手教你搭建xpc平台

概述xpc半实物仿真目标是个基于RTW对低端实时仿真和开发平台,可将计算机或者工控机转变为一个实时系统,不需要第三方操作系统对支持,在计算机上配置输入输入出设备就能和外部交换信息,进行硬件...

不只会拍照的程序猿 7087

Redis学习规划

Redis学习计划,包括学习内容、参考资料、考核以及扩展优化的考核内容。这个计划将帮助您系统地学习Redis,从基础概念到高级应用,再到解决实际问题。通过这个整合和优化的学习计划,您可以全面地学习Redis,并在实际应用中提升其性能和稳定性。- 包含Redis的基础知识、数据结构、持久化、集群、高可用和性能优化等方面的内容。- 提供了从基础到进阶的Redis学习资源。- 深入了解Redis的基本架构和特性。- 获取最权威的Redis学习资源。

喝醉酒的小白 1658

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

学习Redis源码路径

学习 Redis 源码并剖析其技术栈是一个深入理解分布式系统、高性能网络编程和内存管理的绝佳途径。Redis 虽然代码量不大(约 10 万行 C 代码),但设计精妙,涵盖了事件驱动、内存管理、数据结构、持久化、集群协议等多个核心系统技术。

ZachLi的博客 1185

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Redis 学习

官网、各版本下载 Redis 学习

Sun 245

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

如何学习Redis?

在最近的时间里,我的很多工作都是围绕 Redis 展开的。在这期间,遇到了很多 Redis 相关的问题,例如访问延迟变大、部署运维参数配置不合理,等等,也狠狠地恶补了 Redis 方面的知识,看过书,读过源码,出过 Bug,踩过坑,一路走来,逐渐梳理出了一套高效的学习路径,把它分为三大模块:1. 掌握数据结构和缓存的基本使用方法;2. 掌握支撑 Redis 实现高可靠、高性能的技术;3. 精通 Redis 底层实现原理。先和你聊聊“如何高效学习 Redis”,后面会再分享一些学习心得和总结。

qq_37756660的博客 1263

Redis快速学习+java操作Redis

本文介绍了Redis的基本概念、数据结构及常用操作命令。Redis是一种基于键值对的内存数据库,支持多种数据结构,包括字符串、哈希、列表、集合和有序集合。文章详细说明了如何启动Redis服务端、修改密码以及通过客户端连接Redis。此外,还列举了各类数据结构的常用命令,如字符串的SET、GET,哈希的HSET、HGET,列表的LPUSH、LRANGE等。最后,文章简要介绍了如何使用Java操作Redis,展示了通过Jedis客户端进行字符串操作的示例代码。

梓梓心的博客 1388

redis学习

redis基础知识

qq_47660541的博客 213

Redis 学习指南与资料分享

Redis 作为一款高性能内存数据库,在当今软件开发领域占据着重要地位。其丰富的数据类型、强大的功能特性以及广泛的应用场景,吸引着众多开发者深入学习。以下为你精心整理的 Redis 学习指南与实用资料分享,助力你高效掌握 Redis 技术。

zsnandzmn的博客 1269

Redis学习文档

目录一、概念1、特征2、关系型数据库和非关系型数据库的区别3、键的结构4、Redis的Java客户端5、缓存更新策略5.1、概念5.2、代码6、缓存穿透6.1、含义6.2、解决办法6.3、缓存空值代码举例6.4、布隆过滤器代码举例7、缓存击穿7.1、概念7.2、解决办法7.3、互斥锁代码举例7.4、逻辑过期代码举例8、缓存雪崩8.1、含义8.2、解决办法9、Lua脚本9.1、Lua教程9.2、Lua介绍9.2.1、概念9.2.2、Redis为Lua语言内置的lua函数9.2.3、在Redis-cli中执行L

qq_42449963的博客 3913

Redis技术学习笔记

Redis 是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP,使用很方便。

qq_739988982的博客 1821

Redis 学习网站

分享一个 redis 学习网站:http://redisdoc.com

weixin_45417821的博客 369

C++学习之redis

C++学习之redis

qq_27302885的博客 1378
上一篇: 关于RSA加密解密原理
下一篇: Redis-缓存问题
Array_new
博客等级 码龄5年 5粉丝 62原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Array_new

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值