Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Memcached
Memcached

2.9K
1.8K
+ 1
452
Mentat
Mentat

12
3
+ 1
0
Add tool

Memcached vs Mentat: What are the differences?

What is Memcached? High-performance, distributed memory object caching system. Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

What is Mentat? * persistent, relational store by Mozilla*. Project Mentat is a persistent, embedded knowledge base. It draws heavily on DataScript and Datomic Mentat is implemented in Rust..

Memcached and Mentat can be categorized as "Databases" tools.

Memcached and Mentat are both open source tools. It seems that Memcached with 8.99K GitHub stars and 2.6K forks on GitHub has more adoption than Mentat with 1.59K GitHub stars and 91 GitHub forks.

What is Memcached?

Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

What is Mentat?

Project Mentat is a persistent, embedded knowledge base. It draws heavily on DataScript and Datomic. Mentat is implemented in Rust.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose Memcached?
Why do developers choose Mentat?
    Be the first to leave a pro

    Sign up to add, upvote and see more prosMake informed product decisions

      Be the first to leave a con
        Be the first to leave a con
        What companies use Memcached?
        What companies use Mentat?

        Sign up to get full access to all the companiesMake informed product decisions

        What tools integrate with Memcached?
        What tools integrate with Mentat?
          No integrations found

          Sign up to get full access to all the tool integrationsMake informed product decisions

          What are some alternatives to Memcached and Mentat?
          Redis
          Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
          Ehcache
          Ehcache is an open source, standards-based cache for boosting performance, offloading your database, and simplifying scalability. It's the most widely-used Java-based cache because it's robust, proven, and full-featured. Ehcache scales from in-process, with one or more nodes, all the way to mixed in-process/out-of-process configurations with terabyte-sized caches.
          Varnish
          Varnish Cache is a web application accelerator also known as a caching HTTP reverse proxy. You install it in front of any server that speaks HTTP and configure it to cache the contents. Varnish Cache is really, really fast. It typically speeds up delivery with a factor of 300 - 1000x, depending on your architecture.
          Hazelcast
          With its various distributed data structures, distributed caching capabilities, elastic nature, memcache support, integration with Spring and Hibernate and more importantly with so many happy users, Hazelcast is feature-rich, enterprise-ready and developer-friendly in-memory data grid solution.
          MongoDB
          MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.
          See all alternatives
          Decisions about Memcached and Mentat
          Node.js
          Node.js
          Python
          Python
          MySQL
          MySQL
          Memcached
          Memcached
          nginx
          nginx
          RabbitMQ
          RabbitMQ
          Redis
          Redis
          Django
          Django
          Tornado
          Tornado
          Varnish
          Varnish
          HAProxy
          HAProxy

          Around the time of their Series A, Pinterest’s stack included Python and Django, with Tornado and Node.js as web servers. Memcached / Membase and Redis handled caching, with RabbitMQ handling queueing. Nginx, HAproxy and Varnish managed static-delivery and load-balancing, with persistent data storage handled by MySQL.

          See more
          Kir Shatrov
          Kir Shatrov
          Production Engineer at Shopify · | 12 upvotes · 87.7K views
          atShopifyShopify
          Rails
          Rails
          MySQL
          MySQL
          Memcached
          Memcached
          Redis
          Redis

          As is common in the Rails stack, since the very beginning, we've stayed with MySQL as a relational database, Memcached for key/value storage and Redis for queues and background jobs.

          In 2014, we could no longer store all our data in a single MySQL instance - even by buying better hardware. We decided to use sharding and split all of Shopify into dozens of database partitions.

          Sharding played nicely for us because Shopify merchants are isolated from each other and we were able to put a subset of merchants on a single shard. It would have been harder if our business assumed shared data between customers.

          The sharding project bought us some time regarding database capacity, but as we soon found out, there was a huge single point of failure in our infrastructure. All those shards were still using a single Redis. At one point, the outage of that Redis took down all of Shopify, causing a major disruption we later called “Redismageddon”. This taught us an important lesson to avoid any resources that are shared across all of Shopify.

          Over the years, we moved from shards to the concept of "pods". A pod is a fully isolated instance of Shopify with its own datastores like MySQL, Redis, memcached. A pod can be spawned in any region. This approach has helped us eliminate global outages. As of today, we have more than a hundred pods, and since moving to this architecture we haven't had any major outages that affected all of Shopify. An outage today only affects a single pod or region.

          See more
          Kir Shatrov
          Kir Shatrov
          Production Engineer at Shopify · | 13 upvotes · 208K views
          atShopifyShopify
          Docker
          Docker
          Kubernetes
          Kubernetes
          Google Kubernetes Engine
          Google Kubernetes Engine
          MySQL
          MySQL
          Redis
          Redis
          Memcached
          Memcached

          At Shopify, over the years, we moved from shards to the concept of "pods". A pod is a fully isolated instance of Shopify with its own datastores like MySQL, Redis, Memcached. A pod can be spawned in any region. This approach has helped us eliminate global outages. As of today, we have more than a hundred pods, and since moving to this architecture we haven't had any major outages that affected all of Shopify. An outage today only affects a single pod or region.

          As we grew into hundreds of shards and pods, it became clear that we needed a solution to orchestrate those deployments. Today, we use Docker, Kubernetes, and Google Kubernetes Engine to make it easy to bootstrap resources for new Shopify Pods.

          See more
          AWS Elastic Beanstalk
          AWS Elastic Beanstalk
          Heroku
          Heroku
          Ruby
          Ruby
          Rails
          Rails
          Amazon RDS for PostgreSQL
          Amazon RDS for PostgreSQL
          MariaDB
          MariaDB
          Microsoft SQL Server
          Microsoft SQL Server
          Amazon RDS
          Amazon RDS
          AWS Lambda
          AWS Lambda
          Python
          Python
          Redis
          Redis
          Memcached
          Memcached
          AWS Elastic Load Balancing (ELB)
          AWS Elastic Load Balancing (ELB)
          Amazon Elasticsearch Service
          Amazon Elasticsearch Service
          Amazon ElastiCache
          Amazon ElastiCache

          We initially started out with Heroku as our PaaS provider due to a desire to use it by our original developer for our Ruby on Rails application/website at the time. We were finding response times slow, it was painfully slow, sometimes taking 10 seconds to start loading the main page. Moving up to the next "compute" level was going to be very expensive.

          We moved our site over to AWS Elastic Beanstalk , not only did response times on the site practically become instant, our cloud bill for the application was cut in half.

          In database world we are currently using Amazon RDS for PostgreSQL also, we have both MariaDB and Microsoft SQL Server both hosted on Amazon RDS. The plan is to migrate to AWS Aurora Serverless for all 3 of those database systems.

          Additional services we use for our public applications: AWS Lambda, Python, Redis, Memcached, AWS Elastic Load Balancing (ELB), Amazon Elasticsearch Service, Amazon ElastiCache

          See more
          StackShare Editors
          StackShare Editors
          Prometheus
          Prometheus
          Chef
          Chef
          Consul
          Consul
          Memcached
          Memcached
          Hack
          Hack
          Swift
          Swift
          Hadoop
          Hadoop
          Terraform
          Terraform
          Airflow
          Airflow
          Apache Spark
          Apache Spark
          Kubernetes
          Kubernetes
          gRPC
          gRPC
          HHVM (HipHop Virtual Machine)
          HHVM (HipHop Virtual Machine)
          Presto
          Presto
          Kotlin
          Kotlin
          Apache Thrift
          Apache Thrift

          Since the beginning, Cal Henderson has been the CTO of Slack. Earlier this year, he commented on a Quora question summarizing their current stack.

          Apps
          • Web: a mix of JavaScript/ES6 and React.
          • Desktop: And Electron to ship it as a desktop application.
          • Android: a mix of Java and Kotlin.
          • iOS: written in a mix of Objective C and Swift.
          Backend
          • The core application and the API written in PHP/Hack that runs on HHVM.
          • The data is stored in MySQL using Vitess.
          • Caching is done using Memcached and MCRouter.
          • The search service takes help from SolrCloud, with various Java services.
          • The messaging system uses WebSockets with many services in Java and Go.
          • Load balancing is done using HAproxy with Consul for configuration.
          • Most services talk to each other over gRPC,
          • Some Thrift and JSON-over-HTTP
          • Voice and video calling service was built in Elixir.
          Data warehouse
          • Built using open source tools including Presto, Spark, Airflow, Hadoop and Kafka.
          Etc
          See more
          Julien DeFrance
          Julien DeFrance
          Principal Software Engineer at Tophatter · | 16 upvotes · 895.1K views
          atSmartZipSmartZip
          Rails
          Rails
          Rails API
          Rails API
          AWS Elastic Beanstalk
          AWS Elastic Beanstalk
          Capistrano
          Capistrano
          Docker
          Docker
          Amazon S3
          Amazon S3
          Amazon RDS
          Amazon RDS
          MySQL
          MySQL
          Amazon RDS for Aurora
          Amazon RDS for Aurora
          Amazon ElastiCache
          Amazon ElastiCache
          Memcached
          Memcached
          Amazon CloudFront
          Amazon CloudFront
          Segment
          Segment
          Zapier
          Zapier
          Amazon Redshift
          Amazon Redshift
          Amazon Quicksight
          Amazon Quicksight
          Superset
          Superset
          Elasticsearch
          Elasticsearch
          Amazon Elasticsearch Service
          Amazon Elasticsearch Service
          New Relic
          New Relic
          AWS Lambda
          AWS Lambda
          Node.js
          Node.js
          Ruby
          Ruby
          Amazon DynamoDB
          Amazon DynamoDB
          Algolia
          Algolia

          Back in 2014, I was given an opportunity to re-architect SmartZip Analytics platform, and flagship product: SmartTargeting. This is a SaaS software helping real estate professionals keeping up with their prospects and leads in a given neighborhood/territory, finding out (thanks to predictive analytics) who's the most likely to list/sell their home, and running cross-channel marketing automation against them: direct mail, online ads, email... The company also does provide Data APIs to Enterprise customers.

          I had inherited years and years of technical debt and I knew things had to change radically. The first enabler to this was to make use of the cloud and go with AWS, so we would stop re-inventing the wheel, and build around managed/scalable services.

          For the SaaS product, we kept on working with Rails as this was what my team had the most knowledge in. We've however broken up the monolith and decoupled the front-end application from the backend thanks to the use of Rails API so we'd get independently scalable micro-services from now on.

          Our various applications could now be deployed using AWS Elastic Beanstalk so we wouldn't waste any more efforts writing time-consuming Capistrano deployment scripts for instance. Combined with Docker so our application would run within its own container, independently from the underlying host configuration.

          Storage-wise, we went with Amazon S3 and ditched any pre-existing local or network storage people used to deal with in our legacy systems. On the database side: Amazon RDS / MySQL initially. Ultimately migrated to Amazon RDS for Aurora / MySQL when it got rel