了解一下redis吧
Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,所以Redis的性能非常出色。
-------------------顶爷打算补充一下的分割线-------------------------
- 主从机制:
REDIS可以很方便的设置分布处理,主要是通过其内部的SLAVEOF,举例说明:
启动6379端口的REDIS服务,向里面写些测试数据,
COPY一份CONF把端口改一下(6380),并在SLAVEOF里,设置为127.0.0.1 6379这表示,这个REDIS进程是6379进程的SLAVE。
此时启动这个6380的REDIS,如果打开了LOG可以看到,在启动时,REDIS会自动从MASTER上把数据先同步过来,而无需我们手动进行。
14 Dec 15:23:12 -The server is now ready to accept connections on port 6380
14 Dec 15:23:12 . 0 clients connected (0 slaves), 412216 bytes inuse, 0 shared objects
14 Dec 15:23:12 - Connecting to MASTER...
14 Dec 15:23:13 - Receiving 30 bytes data dump from MASTER
14 Dec 15:23:13 - MASTER <-> SLAVEsync succeeded
之后,MASTER上每有一次落地保存,会自动向SLAVE进行同步。当然这里的问题是,如果MASTER不保存,SLAVE也就无法得到这些数据,这和REDIS本身的内存写磁盘逻辑是一样,用更新速度换取了一次操作的速度。
另一点,SLAVE再有SLAVE,所以与其说是SLAVEOF 不如说是COPYOF。
不过需要注意的是,与MYSQL一样,SLAVE并不代表着只听MASTER的话,如果我们连接上SLAVE的话,一样可以写数据的,此时数据就花了。
role:master
db0:keys=2,expires=0
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:135
db0:keys=3,expires=0
所以不要向SLAVE中写入数据!
- 过期机制
与memcached一样,REDIS也有一套数据过期机制,与MC不同的是,这个时间是在设置好的值上进行添加期限的,同样的,当达到了过期时间,这个值将会被删除。简单看了下,好像也是在下一次操作时,当发现该值已经过期,会对期进行清理。当内存溢出时好像也对这部分数据进行清理。具体的有待REDIS成熟可用后进行深入研究。
待解答问题,欢迎解答并提出新的问题:
- ZSET,新版中添加的新的数据类型,目前没有太多详细说明
- 内存处理机制
评论

React 18的并发渲染确实是个重大改进,我们在项目中已经升级使用,性能提升明显!