
🚀 欢迎来到我的CSDN博客:Optimistic _ chen ✨ 一名热爱技术与分享的全栈开发者,在这里记录成长,专注分享编程技术与实战经验,助力你的技术成长之路,与你共同进步!
🚀我的专栏推荐:
专栏 | 内容特色 | 适合人群 |
|---|---|---|
🔥C语言从入门到精通 | 系统讲解基础语法、指针、内存管理、项目实战 | 零基础新手、考研党、复习 |
🔥Java基础语法 | 系统解释了基础语法、类与对象、继承 | Java初学者 |
🔥Java核心技术 | 面向对象、集合框架、多线程、网络编程、新特性解析 | 有一定语法基础的开发者 |
🔥Java EE 进阶实战 | Servlet、JSP、SpringBoot、MyBatis、项目案例拆解 | 想快速入门Java Web开发的同学 |
🔥Java数据结构与算法 | 图解数据结构、LeetCode刷题解析、大厂面试算法题 | 面试备战、算法爱好者、计算机专业学生 |
🚀我的承诺: ✅ 文章配套代码:每篇技术文章都提供完整的可运行代码示例
✅ 持续更新:专栏内容定期更新,紧跟技术趋势
✅ 答疑交流:欢迎在文章评论区留言讨论,我会及时回复(支持互粉)
🚀 关注我,解锁更多技术干货! ⏳ 每天进步一点点,未来惊艳所有人!✍️ 持续更新中,记得⭐收藏关注⭐不迷路 ✨
📌 标签:#技术博客 #编程学习 #Java #C语言 #算法 #程序员
前面博客讲到Redis的全局命令,意味着它们使用在大多数场景中;当然Redis 是一个高性能的键值数据库,支持多种数据结构。这篇博客使用常用数据结构String进行简单介绍。 String类型是Redis最基础的数据类型,它的特点:
这里简单解释一下后面提到的特殊符合的意义:
SET的作用:将string 类型的value设置到key中。
#语法
SET key value [expiration EX seconds|PX milliseconds] [NX|XX]返回值: 设置成功,返回OK. 如果SET指定了NX或者XX但条件不满⾜,SET不会执⾏,并返回 nil

GET的作用:获取对应的value
get key返回值:key对应的value,或者nil当key不存在 时间复杂度都是O(1).
MGET的作用:一次性获取多个key的值

MGET的返回值:对应的value列表;如果对应的key不存在或者对应的数据类型不是string,返回nil。

MSET作用:一次性设置多个key的值
返回值:OK 时间复杂度:一次性操作多组键值对,时间复杂度就是O(N),N取决于操作键值对的数量
注意:对于Redis来说,批量命令和单一命令的执行时间大差不差,但是,使⽤mget/mset由于可以有效地减少了⽹络传输时间,提高性能。



INCR的作用:将key对应的string表⽰的数字加一(如果key不存在,则认为key对应的value是0;如果key的范围超过了64位有符号整型,则报错)
incr key 
DECR的作用:将key对应的string 表示的数字减一(如果key不存在,则认为key对应的value是0;如果key的范围超过了64位有符号整型,则报错)
decr key
两者返回值都是 integer 类型的加完后的数值。
INCRBY的作用:将key对应的string表示的数字加上对应的值
incrby key decrement
DECRBY的作用:将key对应的string表⽰的数字减去对应的值
DECRBY key decrement
两者返回值都是 integer 类型的加完后的值。
作用:将key对应的string表⽰的浮点数加上对应的值。如果对应的值是负数,则视为减去对应的值。
INCRBYFLOAT key increment
返回值:+ / - 完后的数值 注意: 上述计数操作的时间复杂度都是O(1),并且因为redis单机架构模型,多个客户端针对同一个key操作时,不会出现“线程安全问题“。
作用:如果key已经存在并且是⼀个string,命令会将value追加到原有string的后边。
append key value
时间复杂度:追加的字符串⼀般⻓度较短,可以视为O(1) 返回值:追加完成之后string的⻓度。
作用:返回key对应的string的⼦串,由start和end确定(左闭右闭); 可以使⽤负数表⽰倒数。-1代表倒数第⼀个字符
getrange key start end
返回值:string 类型的字串
作用:覆盖字符串的一部分,从指定的偏移开始
setrange key offset value
返回值:替换后的string的⻓度
作用:获取key对应的string的长度(单位是字节)
strlen key
返回值:string的⻓度。或者当key不存在时,返回0。
上篇博客讲到,字符串的内部编码有三种:raw,int,embstr。redis会根据当前值的类型和长度动态决定使用哪种内部编码实现。 下面详细介绍这三种内部编码:
#查看当前内部编码
object encoding key大于39个字节的字符串

小于等于39个字节的字符串

8个字节的长整型

大部分场景下,Redis作为缓冲层,MySQL作为存储层,绝大部分数据都是从redis中获取,因为redis具有支撑高并发的特性,降低MySQL的压力。

但是这样有一个问题,随着数据量的增大,redis的压力会越来越大,大部分数据压力都会由redis承担,后面会不会崩溃?
答案是会崩溃。所以redis在写键值对的时候给key提供了一个过期时间,时间到了这个数据自动被删除;同时还有淘汰策略等等解决方案。
还有计数功能,很多网站都使用redis作为计数工具,它可以实现快速计数、查询缓存的功能,同时数据可以异步处理或者落地到其他数据源。

如果这篇博客对你有帮助,不妨点个赞支持一下吧!👍 你的鼓励是我创作的最大动力~
✨ 想获取更多干货? 欢迎关注我的专栏 → optimistic_chen 📌 收藏本文,下次需要时不迷路!
我们下期再见!💫 持续更新中……
悄悄说:点击主页有更多精彩内容哦~ 😊