Redis 性能问题分析(转载)原文: https://www.jianshu.com/p/67093716547b
在一些网络服务的系统中,Redis 的性能,可能是比 MySQL 等硬盘数据库的性能更重要的课题。比如微博,把热点微博[1],最新的用户关系[2],都存储在 Redis 中,大量的查询击中 Redis,而不走 MySQL。
那么,针对 Redis 服务,我们能做哪些性能优化呢?或者说,应该避免哪些性能浪费呢?
Redis 性能的基本面在讨论优化之前,我们需要知道,Redis 服务本身就有一些特性,比如单线程运行。除非修改 Redis 的源代码,不然这些特性,就是我们思...
最近做了一个项目,涉及了大量的 redis IO 读写。
原先的方式采用了单命令,一个操作往往涉及多个请求,写入和读取数据的效率十分低。因此,期望通过打包命令的方式,来减少网络请求 IO 对效率的影响
在网上找到某大佬关于 redis 单条命令请求效率低的解释:
socket IO 导致的上下文切换开销
熟悉 OS/Linux 的童鞋都知道,一次 redis 请求在客户端和服务端分别至少会存在一次 read() 和一次 write() ,作为系统调用,read/write 的成本高于普通的函数调用,因此,在单个命令重复调用场景下,大量的 read/write 系统调用会产生...
不久前,发现 MC 服务器居然不能输入指令关闭服务器,在启动过程中有报错。
123456789101112java.io.IOException: Resource temporarily unavailable at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:272) at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) at java.io.Buf...
现在 Linux 的版本做的优化也是越来越到位,无论是功能,样式还是上手度都比以前好了很多。但是 Linux 的多样化造成经常一更新代码就挂掉。(表示更新 Fedora、OpenSUSE、Linux Mint 全部挂掉了)。不过因为相互兼容,所以重装也比较方便。但是以前重装 Windows 就不一样了。重装完 Windows 之后 Grub2 会被删的一干二净。
windows 重装后导致 Grub 问题找出以前整理过的一份笔记:
首先是需要一个 Ubuntu 启动盘(U 盘 or 光盘)。进入系统。
切换成 root 账户su root
查看分区并挂载系统区。
12fdisk -...
关于转移符,无非是\ 加上别的字符。例如换行\n,制表符\t。
在 JavaScript 中,字符串中涉及\的部分一律作为转移符,而如果想输入\的字符,必须写成\\。作为 mac 党还行,如果是 Windows 开发就呵呵哒了。
12> path = 'c:\Users\maple\Desktop\新建文件夹';'c:UsersmapleDesktop新建文件夹'
正确做法应该是:
12> path'c:\\Users\\maple\\Desktop\\新建文件夹'
当然大部分语言都是这个样子。如果包含\
在 P...
本文转载自 https://www.dev-heaven.com/posts/1914.html
安装脚本12345678910yum install wget -y#Download RabbitMQ and Erlangwget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-3.6.9-1.el6.noarch.rpmwget https://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el6.x86_64.rpm#Instal...
在分布式版本的算法里我们假设我们有 N 个 Redis master 节点,这些节点都是完全独立的,我们不用任何复制或者其他隐含的分布式协调算法。我们已经描述了如何在单节点环境下安全地获取和释放锁。因此我们理所当然地应当用这个方法在每个单节点里来获取和释放锁。在我们的例子里面我们把 N 设成 5,这个数字是一个相对比较合理的数值,因此我们需要在不同的计算机或者虚拟机上运行 5 个 master 节点来保证他们大多数情况下都不会同时宕机。一个客户端需要做如下操作来获取锁:
获取当前时间(单位是毫秒)。
轮流用相同的 key 和随机值在 N 个节点上请求锁,在这一步里,客户端在每个 mas...
Kafka 是基于磁盘文件顺序存储而设计的类 AMQP 消息队列服务,支持集群和数据备份。有着超高的稳定性和吞吐量。
前段时间我司拟推广 Kafka,也乘机借着项目学了下 Kafka 的相关知识,虽然最后还是一直决定使用 ONS..
在 Node 环境使用量比较高的是 Kafka-node这个包。所以本文主要讲诉这个包的一些简单用例。
关于 Lower Level Consumer 和 High Level Consumer 的区别
一开始在不怎么了解的情况下,一直分不清楚两者的关系。后来在一大佬的文章中得到了解释:
很多时候,客户程序只是希望从Kafka读取数据,不太关心消息 off...
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。
说白了就是两张表, A 表的某个字段必须和 B 表的某个字段关联起来。
B 表那个字段如果有值 value,A 表的这个字段才能使用 value 这个值。如果 B 表该字段不存在的值,是无法作为 A 表该字段的值来使用的。
这样就可以保证在写入数据的时候,不会因为 B 表的数据未写入而 A 表的数据写入成功导致数据不一致。
也能避免当 A 表关联 B 表字段。B 表擅自删除导致 A 无法关联到 B 表。
其父表被关联的字段,称为子表的外键。
这里有以下几个特点:
父表不存在的值,子表是无法引用。
子表...
因为开发和测试需要,在家里常年跑了 vmware 虚拟机。然后通过 MAC 端的 VMware Fusion 对其进行连接。在上面操作。
前段时间 win10 推送了一个大版本更新,需要升级大版本就要把老的数据备份,然而我之前分配的硬盘空间不足以进行升级。而我实在不想把开虚拟机的电脑接到显示器上,尤其是我知道那张显卡已经基本无法显示了。
我想到了 VMware 一向都有完善的命令行工具,是否可以通过命令行工具来实现对硬盘文件的扩容。查阅了网上资料,卧槽,还真的可以的。
123456789101112131415161718192021222324252627282930313233343...