All information that you store in a Couchbase bucket will have a key and associated content. Keys are unique identifiers for a document, and content is either the data you want to store as byte stream, data types, or serialized objects such as JSON.
A key in Couchbase Server can be any string, including strings with separators and identifiers, such as 'person_93679.' A key is unique.
By default, all documents contain three types of metadata which are provided by the Couchbase Server. This information is stored with the document and is used to change how the document is handled:
Cas Value —Also called cas token or cas ID; this is a unique identifier associated with a document, and verified by the Couchbase Server before a document is deleted or changed. This provides a form of basic optimistic concurrency; when the Couchbase Server checks a CAS value before changing data, it effectively prevents data loss without having to lock records. Couchbase Server will prevent a document from being altered by an operation if another process alters the document and its CAS value, in the meantime.
Time to Live (ttl) —This is an expiration for a document typically specified in seconds. By default, any document created in Couchbase Server that does not have a given ttl will have an indefinite life span and will remain in Couchbase Server unless an explicit delete operation from a client removes it. The Couchbase Server will delete values during regular maintenance if the ttl for an item has expired.
The expiration value deletes information from the entire database. It has no effect on when the information is removed from the RAM caching layer.
Flags —These are SDK- specific flags which are used to provides a variety of options during storage, retrieval, update, and removal of documents. Typically flags are optional metadata used by a Couchbase client library to perform additional processing of a document. An example of flags include the ability to specify that a document be formatted a specific way before it is stored.