sqlite | Memcached | |
---|---|---|
7 | 56 | |
554 | 13,208 | |
- | 0.7% | |
0.0 | 8.4 | |
15 days ago | 4 days ago | |
C | C | |
ISC License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sqlite
-
Redis Re-Implemented with SQLite
> You can get substantially better performance out of sqlite by using the lower level https://github.com/crawshaw/sqlite, turning on WAL etc, using a connection per goroutine for reads, and sending batches of writes over a buffered channel / queue to a dedicated writer thread. That way you can turn off SQLite’s built in per-connection mutex but still be thread safe since each connection is only used on a single thread at a time.
Would this protect against a row update in the middle of a read? e.g. would a row at least be internally consistent at the time it was read?
-
SQLite in Go, with and Without Cgo
The default go sqlite driver is https://github.com/mattn/go-sqlite3, which is quite lovely, but I ran into issues with concurrency on read only databases.
I'm now using https://github.com/crawshaw/sqlite and it seems to address those issues (but I haven't gotten around to setting up a proper test to confirm). It may be worth perusing if you do run into performance problems. It does come with the caveat of not being a database/sql driver though.
-
Awesome SQLite
crawshaw/sqlite - Low-level Go interface to SQLite
-
A pure Go embedded SQL database
crawshaw/sqlite actually uses CGo -- it's a wrapper around the C version of SQLite. For example, see https://github.com/crawshaw/sqlite/blob/23d646f8ac00d9dd2390...
zombiezen/go-sqlite uses cznic's pure Go converted version of SQLite, so avoids CGo. It's explicitly stated to be "a fork of crawshaw.io/sqlite that uses modernc.org/sqlite, a CGo-free SQLite package. It aims to be a mostly drop-in replacement for crawshaw.io/sqlite."
-
Are both MySQL and Postgres drivers similar in quality?
The second well known driver is https://github.com/crawshaw/sqlite
Memcached
-
System Design: Databases and DBMS
Memcached
- Redis Re-Implemented with SQLite
-
Best engineering interview question I've gotten
> Multiple clients racing can't be fixed.
Really? You can't think of a single way for multiple clients to operate on the same data without racing? (Here's a hint if you're still having trouble: https://github.com/memcached/memcached/wiki/Commands#cas.)
- Memcached 1.6.25 Release Notes
- Memcached 1.6.24 Release Notes
-
How to choose the right type of database
Memcached: A simple, open-source, distributed memory object caching system primarily used for caching strings. Best suited for lightweight, non-persistent caching needs.
-
Sieve is simpler than LRU
Oh, thank you! I didn't realize that LRU Maintainer Thread was more than an expiration reaper. When it was first being introduced that was its first responsibility as lazy expiration removal by size eviction meant dead entries wasted capacity. It was all work in progress when I had read about it [1] and talked to dormando, so it got fuzzy. The compat code [2, 3] might have also thrown me off if I only looked at the setting and not the usage. Its a neat variant to all of these ideas.
[1] https://github.com/memcached/memcached/pull/97
-
A Developer's Journal: Simplifying the Twelve-Factor App
stores session state in a session store like Memcached or Redis.
-
In-memory database Redis wants to dabble in disk
memcached has recently gained the ability to spill to disk: https://github.com/memcached/memcached/wiki/Extstore
we recently implemented this to grow our caches to >50TB
-
Django Caching 101: Understanding the Basics and Beyond
Django supports using Memcached as a cache backend. Memcached is a high-performance, distributed memory caching system that can be used to store cached data across multiple servers.
What are some alternatives?
sqlite
Varnish - The project homepage
go-sqlite-lite - SQLite driver for the Go programming language
node-cache - A simple in-memory cache for nodejs
go-sqlite - Low-level Go interface to SQLite 3
dragonfly - A modern replacement for Redis and Memcached
go-sqlite3 - sqlite3 driver for go using database/sql
node-cache - a node internal (in-memory) caching module
chai - Modern embedded SQL database
KeyDB - A Multithreaded Fork of Redis
ql
Redis - Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.