Couchbase Server is a simple, fast, elastic, open-source NoSQL database. Couchbase automatically distributes data across commodity servers or virtual machines. Built-in managed object caching enables apps to read and write data with sub-millisecond latency. With no schema to manage, Couchbase effortlessly accommodates changing data management requirements. It is easy to deploy and manage in production with its advanced monitoring and admin GUI.
Couchbase Server is a drop-in replacement for memcached, a proven data caching technology that is used by 18 of the world’s top 20 websites. With memcached inside, Couchbase Server enables applications to read and write data with sub-millisecond latency and sustained high throughput. Efficient memory management delivers predictable latency: an object-level cache prevents thrashing inherent to page-level approaches. Users can allocate cache resources per database depending on application needs, rather than relying on global cache management by the operating system.
Couchbase Server supports the same client protocol used by memcached to create, retrieve, update and delete data in the database. Applications currently using “off-the-shelf” memcached can seamlessly be upgraded to Couchbase Server to take advantage of its powerful management UI, as well as other advantages like clustering, elastic scaling, high availability and more. If you are not already using one of the legacy memcached libraries, we recommend getting started with our newly packaged and tested SDKs.
Couchbase Server allows you to perform any maintenance tasks on a live cluster. Not only do cluster topology changes like adding or removing servers require no application downtime, but even upgrading software can be done on a running system. Learn more about ongoing monitoring and maintenance here.
Clone to grow with auto-sharding
With Couchbase Server, you can add (or remove) servers in your cluster with the click of a button allowing you to easily keep your resources in step with the changing needs of your application. By simply adding more servers, you can horizontally scale your application with additional RAM as well as I/O capacity.
Auto-sharding distributes data uniformly across servers and enables direct routing of requests to the appropriate server without the need for any application changes. Addition (or removal) of a server initiates the re-balancing of data across the cluster while ensuring continuous availability of data. Learn more aboutthese administrative tasks. You can manage clusters using the Couchbase Server administration web interface or programmatically using the Couchbase Server management REST API.
Production-ready management and monitoring
Couchbase Server provides advanced monitoring with a rich administration web interface. Users can monitor the entire cluster using real-time system monitoring charts that reflect statistics for the entire cluster with the ability to drill down to an individual server for easy troubleshooting. Learn more about the monitoring capabilities.
Reliable storage architecture
Couchbase Server asynchronously persists all data to disk and enables you to store datasets larger than the physical RAM size. Couchbase automatically moves data between RAM and disk and keeps the working set in the object-level cache. Couchbase uses SQLite, which is proven, reliable and widely deployed, as its persistence layer. Mutations are first committed to RAM and then added to the disk write queue for persistence to disk performing per document commits.
Data replication with auto-failover
To ensure high availability of your application – particularly to protect against node failures when using commodity servers or virtual machines – Couchbase Server’s data replication capability allows you to maintain multiple copies of your data within a cluster. Replica data is distributed across all nodes reducing the impact of failure on individual nodes. Couchbase Server supports user configurable, optional, automatic failover to activate replica nodes. Learn more about failover.
Professional SDKs for wide variety of languages
You can develop your application in the language of your choice using Couchbase Server’s easy-to-use SDKs, which include fully supported SDKs for Java, C#, PHP, C, Python and Ruby.
Though there are a large number of legacy memcached libraries available, Couchbase recommends building application using our new, packaged SDKs. These “smart” SDKs are cluster topology-aware and automatically route requests directly to the appropriate node. Find more information on the APIs, usage details and SDK downloads.