发布信息

谈谈redis mongodb的区别和详细运行场景 memcache (谈谈redis的使用场景)

     2024-10-22 21:07:30     660

本文目录导航:

谈谈redis,memcache,mongodb的区别和详细运行场景

从以下几个维度,对 redis、memcache、mongoDB 做了对比。

1、性能都比拟高,性能对咱们来说应该都不是瓶颈。 memcache

总体来讲,TPS 方面 redis 和 memcache 差不多,要大于 mongodb。

2、操作的便利性memcache 数据结构繁多。

(key-value)redis 丰盛一些,数据操作方面,redis 更好一些,较少的网络 IO 次数,同时还提供 list,set,hash 等数据结构的存储。

mongodb 支持丰盛的数据表白,索引,最相似相关型数据库,支持的查问言语十分丰盛。

3、内存空间的大小和数据量的大小redis 在 2.0 版本后参与了自己的 VM 个性,打破物理内存的限度;可以对 key value 设置过时期间(相似 memcache)memcache 可以修正最大可用内存,驳回 LRU 算法。

Memcached 代理软件 magent,比如建设10 台 4G 的 Memcache 集群,就相当于有了 40G。

magent -s 10.1.2.1 -s 10.1.2.2 -b10.1.2.3 mongoDB 适宜大数据量的存储,依赖操作系统 VM 做内存治理,吃内存也比拟凶猛,服务不要和别的服务在一同。

4、可用性(单点疑问)关于单点疑问,redis,依赖客户端来成功散布式读写;主从复制时,每次从节点从新衔接主节点都要依赖整个快照,无增量复制,因性能和效率疑问,所以单点疑问比拟复杂;不支持智能 sharding,须要依赖程序设定分歧 hash 机制。

一种代替打算是,不用 redis 自身的复制机制,驳回自己做被动复制(多份存储),或许改成增量复制的模式(须要自己成功),分歧性疑问和性能的掂量Memcache 自身没有数据冗余机制,也没必要;关于缺点预防,驳回依赖成熟的 hash 或许环状的算法,处置单点缺点惹起的颤抖疑问。

mongoDB 支持 master-slave,replicaset(外部驳回 paxos 选举算法,智能缺点复原),auto sharding 机制,对客户端屏蔽了缺点转移和切分机制。

5、牢靠性(耐久化)关于数据耐久化和数据复原,redis 支持(快照、AOF):依赖快照启动耐久化,aof 增强了牢靠性的同时,对性能有所影响memcache 不支持,理论用在做缓存,优化性能;MongoDB 从 1.8 版本开局驳回 binlog 模式支持耐久化的牢靠性6、数据分歧性(事务支持)Memcache 在并发场景下,用 cas 保障分歧性redis 事务支持比拟弱,只能保障事务中的每个操作延续口头mongoDB 不支持事务7、数据剖析mongoDB 内置了数据剖析的性能(mapreduce),其余不支持8、运行场景redis:数据量较小的更性能操作和运算上memcache:用于在灵活系统中缩小数据库负载,优化性能;做缓存,提高性能(适宜读多写少,关于数据量比拟大,可以驳回 sharding)MongoDB:重要处置海量数据的访问效率疑问。

表格比拟:memcache redis 类型 内存数据库 内存数据库数据类型 在定义 value 时就要固定数据类型 不须要有字符串,链表,集 合和有序汇合虚构内存 不支持 支持过时战略 支持 支持散布式 magent master-slave,一主一从或一主多从存储数据安保 不支持 经常使用 save 存储到 中劫难复原 不支持 append only file(aof)用于数据复原性能1、类型——memcache 和 redis 都是将数据寄存在内存,所以是内存数据库。

当然,memcache 也可用于缓存其余物品,例如图片等等。

2、 数据类型——Memcache 在参与数据时就要指定数据的字节长度,而 redis 不须要。

3、 虚构内存——当物理内存用完时,可以将一些很久没用到的 value 交流到磁盘。

4、 过时战略——memcache 在 set 时就指定,例如 set key1 0 0 8,即永不过时。

Redis 可以经过例如 expire 设定,例如 expire name 10。

5、 散布式——设定 memcache 集群,应用 magent 做一主多从;redis 可以做一主多从。

都可以一主一从。

6、 存储数据安保——memcache 断电就断了,数据没了;redis 可以活期 save 到磁盘。

7、 劫难复原——memcache 同上,redis 丢了后可以经过 aof 复原。

Memecache 端口 yum -y install memcachedyum -y install php-pecl-memcache/etc/init.d/memcached start memcached -d -p -u memcached -m 64 -c 1024 -P /var/run/memcached/-d 启动一个守护进程-p 端口-m 调配的内存是 M-c 最大运转并发数-P memcache 的 pid//0 紧缩(能否 MEMCACHE_COMPRESSED) 30 秒失效期间//delete 5 是 timeout <?php$memcache = new Memcache; $memcache -> connect(127.0.0.1, ); $memcache -> set(name,yang,0,30);if(!$memcache->add(name,susan,0, 30)) {//echo susan is exist; }$memcache -> replace(name, lion, 0, 300); echo $memcache -> get(name);//$memcache -> delete(name, 5);printf stats\r\n | nc 127.0.0.1 telnet localhost stats quit 分开Redis 的性能文件 端口 6379/etc/ 启动 Redisredis-server /etc/ 拔出一个值redis-cli set test 失掉键值redis-cli get test 封锁 Redisredis-cli shutdown 封锁一切redis-cli -p 6379 shutdown <?php$redis=new Redis(); $redis->connect(127.0.0.1,6379); $redis->set(test, Hello World); echo $redis->get(test); Mongodbapt-get install mongo mongo 可以进入 shell 命令行pecl install mongo Mongodb 相似 phpmyadmin 操作平台 RockMongo

内存数据库有哪些

内存数据库重要有以下几种:

2. Memcached

3. GemFire(Gemstone散布式内存计算平台的一局部)

以下是针对这些内存数据库的详细解释:

Redis:Redis是一个开源的内存数据库,支持多种数据结构,如字符串、哈希、列表等。

因为其基于内存的操作,其读写速度十分快。

Redis不只可以作为数据库经常使用,还可以作为缓存系统、信息两边件等。

此外,Redis支持耐久化,即使系统重启,数据也不会失落。

因为其灵敏性和高性能,Redis被宽泛运行于各种场景,如缓存、排行榜、实时信息系统等。

Memcached:Memcached是一个散布式的内存对象缓存系统,用于减速灵活Web运行的数据库读取速度。

它经过在内存中缓存数据和对象来缩小访问数据库的频率,从而提高运行的照应速度。

Memcached不支持复杂的数据结构,只能存储便捷的字符串键值对。

因为其便捷的经常使用和高速的访问照应,Memcached被宽泛运行于Web运行的缓存需求。

GemFire:GemFire是VMware vFabric套件的一局部,它是一个用于构建高性能、高可用性商业运行的内存数据存储平台。

它提供了耐久性内存和散布式缓存性能,准许数据在多个节点之间同步和共享。

GemFire实用于须要实时数据访问和降级的运行,照实时剖析、业务智能等场景。

其散布式个性使得数据可以在多个节点间极速访问和同步,从而提高系统的性能和牢靠性。

以上就是对几种经常出现的内存数据库的解释。

MongoDB 或许 redis 可以代替 memcached 吗

mongodb和memcached不是一个领域内的物品。

mongodb是文档型的非相关型数据库,其好处在于查问性能比拟弱小,能存储海量数据。

mongodb和memcached不存在谁交流谁的疑问。

和memcached更为凑近的是redis。

它们都是内存型数据库,数据保留在内存中,经过tcp间接存取,好处是速度快,并发高,缺陷是数据类型有限,查问性能不强,普通用作缓存。

在团队的名目中,一开局用的是memcached,起初用redis代替。

相比memcached:1、redis具有耐久化机制,可以活期将内存中的数据耐久化到硬盘上。

2、redis具有binlog性能,可以将一切操作写入日志,当redis产生缺点,可依照binlog启动数据复原。

3、redis支持virtual memory,可以限定内存经常使用大小,当数据超越阈值,则经过相似LRU的算法把内存中的最不罕用数据保留到硬盘的页面文件中。

4、redis原生支持的数据类型更多,经常使用的构想空间更大。

5、前面有位好友所提及的分歧性哈希,用在redis的sharding中,普通是在负载十分高须要水平裁减时经常使用。

还没有用到这方面的性能,普通的名目,单机足够撑持并发了。

redis 3.0将推出cluster,性能愈加弱小。

6、redis更多好处,请移步官网网站查问。

相关内容 查看全部