
redis
文章平均质量分 91
redis的学习过程
摆烂java选手
想学新技术
展开
-
Redis的哨兵
通过自动化的方式来解决主节点挂了的问题,哨兵机制是通过独立的进程来体现的,与redis-server是不同的进程,redis-sentinel不负责存储数据,只是对其他的redis-server进程起到监控的效果。挑选出新的主节点之后,哨兵节点就会自动控制该被选中的节点,执行slaveof no one,并且控制其他从节点,修他们的主节点对象,通过slaveof改到新的主节点上。主节点真的挂了之后,这些哨兵节点中就会推举出一个leader,由这个leader负责从现有的从节点中,挑选一个座位新的主节点。原创 2025-04-10 19:11:56 · 553 阅读 · 0 评论 -
Redis的主从复制
建议先看第六,防止redis的主节点服务器启动不起来原创 2025-04-09 19:56:49 · 456 阅读 · 0 评论 -
Redis的事务
redis是否存在原子性这个仁者见仁智者见智,此处只是对其做一个简单的分析,redis的原子性和MySQL的原子性是不同的。MySQL的原子性是把多个操作打包到一起,要么这些操作都执行成功,要么这些操作都不执行,如果执行过程中有事务操作执行失败了,事务就会进行回滚。Redis的原子性只是将多个操作打包到一起,要么都一起执行,要么都不执行,不会管执行过程中是否成功。原创 2025-04-08 16:47:01 · 758 阅读 · 0 评论 -
Redis持久化
持久化简单的理解就是把数据存在硬盘上,这样数据就不会丢失了,但是redis是将数据存储到内存上的,怎么就能够持久化数据呢?这是因为redis在硬盘中也是存储了数据的。为了保证查询的速度够快,数据肯定是得在内存中的,但是为了持久,就必须存储在硬盘上,此时这两份数据理论上是完全相同的,实际上可能会存在一点差异,差异主要取决于用户如何进行数据的持久化操作的。当查询某个数据的时候,在redis中还是直接从内存中读取数据,硬盘的数据只不过是在redis重启的时候,用来恢复内存中的数据。原创 2025-04-07 23:40:11 · 612 阅读 · 0 评论 -
Redis的Java客户端
把写好的Java代码打包成jar包,然后把jar包上传到Linux服务器上执行,这种方法手动太麻烦了,虽然也有插件,但是不太安全。由于redis的端口号6379默认被云服务器防火墙给进行保护起来了,如果手动关闭防火墙很容易被黑客入侵,所以不能够关闭防火墙。原创 2025-03-30 16:56:20 · 985 阅读 · 0 评论 -
Redis的补充和RESP
需要注意的是,cursor不是一个连续递增的整数的下标,只能理解为仅仅是一个字符串,无法知道其中的规律,只有redis的服务器知道这个光标对应元素的位置。这里的渐进式遍历在遍历过程中,不会在服务器这边存储任何的状态信息,此处的遍历是随时可以终止的,不会对服务器有任何的副作用。scan是有可能返回空集合的,当下一次的光标起始位置为0的时候,就已经将key遍历结束了。返回值的前半部分,提示用户下次遍历光标起始位置,后面的数据就是真正遍历到的key的内容。如果光标设置为0,意味着这次遍历从头开始获取。原创 2025-03-30 09:19:11 · 994 阅读 · 0 评论 -
Redis的ZSet有序集合
zset是一个有序的集合,所谓的有序就代表一个集合[1,2,3]和集合[1,3,2]不是等价的。排序的规则是给zset的member中引入了一个属性,这个属性就是分数。分数是一个浮点类型的数据,每个member都会安排一个分数,进行排序的时候,就是依照此处的分数大小进行升序/降序操作。需要注意的是,member是唯一的,但是score(分数)可以不是唯一的。原创 2025-03-29 16:46:32 · 833 阅读 · 0 评论 -
Redis的Set集合
当我们进入大学之后,我们在QQ上肯定会加自己班级上的人,但是你加的同学,他可能是社团的人,他就可能加了社团里面的人(这些人和你不是一个班级也不是一个专业),此时QQ就会把你同学他在社团里面加的人推送给你。上述还会从搜索的历史记录等其他方面来进行分析一个用户的特征,这样就能够收集完用户的特征,这些特征也就转换成了用户的标签,并且把这些标签存在redis的set集合中。每个用户访问服务器都会产生一个uv,但是相同的用户多次访问,不会使UV增加,此时就会需要进行去重操作,就可以使用set来实现。原创 2025-03-28 16:59:09 · 656 阅读 · 0 评论 -
Redis的List类型
列表的List相当于数组或者顺序表。原创 2025-03-28 15:37:12 · 1140 阅读 · 0 评论 -
Redis的Hash类型
如果使用hash的方式表示UserInfo,就可以使用field表示对象的每个属性(数据表的每个列),此时就可以非常方便的修改/获取任何一个属性的值了。如果使用String(JSON)的格式来表示UserInfo,万一只想获取其中某个field,或者修改某个field就需要把整个JSON都读出来,解析成对象,操作完field后,再重新转成JSON字符串,再写回去。虽然,ziplist付出的代价是进行读写元素时,速度较慢,但是,如果元素个数比较少,慢的就不太明显,除非元素个数太多了,才会比较明显。原创 2025-03-26 10:50:45 · 1038 阅读 · 0 评论 -
redis的String类型介绍
redis的字符串不会对字符编码做任何处理(redis只认字节),当前使用的Xshell终端默认的字符编码是UTF8,在终端输入汉字之后,也就是按照UTF8进行编码的,一个汉字在UTF8字符集中,通常是3个字节。随着时间的推移,肯定是会有越来越多的key在redis上访问不到,因为数据在不断变多,此时又需要从MySQL读取数据并写入redis中,这样redis中的数据会变的更多,此时redis就无法承受这样的数据量。如果key存在,则让新的value覆盖旧的value,这个过程可能改变原来的数据类型。原创 2025-03-26 08:36:59 · 818 阅读 · 0 评论 -
Redis通用命令+部分策略模型
如果此时使用IO多路复用的方式:我先去把饭煮了,然后我去热水,最后去炒菜,当热水烧开后,机器会进行提示,我听到提示声音后,就将热水的机器关闭,并把热水拿过来进行炒菜,最后在炒菜过程中电饭煲提示饭热好,我再将电源关闭,再进行炒菜。此时就提升了效率降低了开销。压缩的原因:redis上会存在许多的key,可能某些key的value是hash,此时如果key特别多,对应的hash的value也就多起来了,但是每个hash又不大的情况下,就尽量去压缩,因为压缩之后,就可以让整体占有的内存更小了,节省了空间。原创 2025-03-25 08:39:30 · 1000 阅读 · 0 评论 -
Redis简单介绍和安装
Redis(Remote Dictionary Server)是一个高性能、开源的 内存数据结构存储系统,支持多种数据结构(如字符串、哈希、列表、集合、有序集合等),常被用作数据库、缓存、消息中间件和实时数据处理工具。在Ubuntu 上进行安装Redis,因为Redis只能支持在Linux上进行安装。红色方框的是为了找到配redis的配置文件的命令,蓝色方框则是redis的配置文件。需要注意的是,输入找到配置文件的命令时,cd后面要有一个空格。如果没有异常则什么都不会出现。原创 2025-03-23 22:22:02 · 405 阅读 · 0 评论