Redis知识点

来源:互联网 发布:日本人看中国网络用语 编辑:程序博客网 时间:2024/05/21 02:51
基于内存的高性能key-value数据库Redis是一个开源的,使用C语言编写,面向“键/值”(Key/Value)对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景1. 保存在内存中,读写快2. 支持的对象类型丰富,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)   这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的3. 支持事物,原子性的String:get key/getset key valueList:  lpush key values[value1 value2…]  /  lpop keyHash:hset key field value / hlen keySet:sadd key values[value1、value2…]Zset: zadd key score member score2 member2 1.memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型2.redis的速度比memcached快很多.3.Redis支持数据的备份,即master-slave模式的数据备份4.Memecache把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。redis可以持久化其数据5.redis最大可以达到1GB,而memcache只有1MB6.异步的方式将数据写入磁盘7.与Memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步(数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。)。        redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略:1.voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰2.volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰3.volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰4.allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰5.allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰6.no-enviction(驱逐):禁止驱逐数据 主从复制功能,这个功能和mysql的主从复制是一个道理,都能很好的确保数据的一致性。主从复制:读写分离,不仅可以提高服务器的负载能力,并且可以根据读请求的规模自由增加或者减少从库的数量数据被复制成了了好几份,就算有一台机器出现故障,也可以使用其他机器的数据快速恢复。Redis的快照RDB与AOF日志,本地持久化到硬盘1、RDB持久化(默认支持,无需配置)该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。2、AOF持久化该机制将以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。