All Projects → kasvith → Kache

kasvith / Kache

Licence: mit
A simple in memory cache written using go

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Kache

Bojack
🐴 The unreliable key-value store
Stars: ✭ 101 (-71.06%)
Mutual labels:  database, redis, cache, nosql
Java Knowledge Mind Map
【🌱🌱Java服务端知识技能图谱】用思维脑图梳理汇总Java服务端知识技能
Stars: ✭ 787 (+125.5%)
Mutual labels:  database, redis, cache
Laravel Eloquent Query Cache
Adding cache on your Laravel Eloquent queries' results is now a breeze.
Stars: ✭ 529 (+51.58%)
Mutual labels:  database, redis, cache
Nodbi
Document DBI connector for R
Stars: ✭ 56 (-83.95%)
Mutual labels:  database, redis, nosql
Redis Marshal
Lightweight Redis data exploration tool
Stars: ✭ 16 (-95.42%)
Mutual labels:  database, redis, nosql
Lada Cache
A Redis based, fully automated and scalable database cache layer for Laravel
Stars: ✭ 424 (+21.49%)
Mutual labels:  database, redis, cache
Redix
a persistent real-time key-value store, with the same redis protocol with powerful features
Stars: ✭ 907 (+159.89%)
Mutual labels:  database, redis, nosql
Dynomite
A generic dynamo implementation for different k-v storage engines
Stars: ✭ 3,830 (+997.42%)
Mutual labels:  redis, cache, nosql
Db Tutorial
💾 db-tutorial 是一个数据库教程。
Stars: ✭ 128 (-63.32%)
Mutual labels:  database, redis, nosql
Ardb
A redis protocol compatible nosql, it support multiple storage engines as backend like Google's LevelDB, Facebook's RocksDB, OpenLDAP's LMDB, PerconaFT, WiredTiger, ForestDB.
Stars: ✭ 1,707 (+389.11%)
Mutual labels:  database, redis, nosql
Tidis
Distributed transactional NoSQL database, Redis protocol compatible using tikv as backend
Stars: ✭ 1,182 (+238.68%)
Mutual labels:  database, redis, nosql
Endb
Key-value storage for multiple databases. Supports MongoDB, MySQL, Postgres, Redis, and SQLite.
Stars: ✭ 208 (-40.4%)
Mutual labels:  database, redis, cache
Jnosql
Eclipse JNoSQL is a framework which has the goal to help Java developers to create Jakarta EE applications with NoSQL.
Stars: ✭ 145 (-58.45%)
Mutual labels:  database, nosql, flexible
Bitnami Docker Redis
Bitnami Redis Docker Image
Stars: ✭ 317 (-9.17%)
Mutual labels:  database, redis, nosql
Redisson
Redisson - Redis Java client with features of In-Memory Data Grid. Over 50 Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Tomcat, Scheduler, JCache API, Hibernate, MyBatis, RPC, local cache ...
Stars: ✭ 17,972 (+5049.57%)
Mutual labels:  redis, cache
Scrapbook
PHP cache library, with adapters for e.g. Memcached, Redis, Couchbase, APC(u), SQL and additional capabilities (e.g. transactions, stampede protection) built on top.
Stars: ✭ 279 (-20.06%)
Mutual labels:  redis, cache
Senparc.co2net
支持 .NET Framework & .NET Core 的公共基础扩展库
Stars: ✭ 289 (-17.19%)
Mutual labels:  redis, cache
Cache
Cache library
Stars: ✭ 310 (-11.17%)
Mutual labels:  redis, cache
Inquiry Deprecated
[DEPRECATED]: Prefer Room by Google, or SQLDelight by Square.
Stars: ✭ 264 (-24.36%)
Mutual labels:  database, nosql
Awesome Programming Books
📚 经典技术书籍推荐,持续更新...
Stars: ✭ 3,472 (+894.84%)
Mutual labels:  redis, tcp

kache

A simple and a flexible in memory cache

Build Status Build Status Build status Go Report Card HitCount codecov GitHub

gopher is looking at kache

What is kache

kache aims to develop a redis compatible in memory db with golang. Currently kache is powered up with RESP Protocol. kache also supports simple text protocol so you can issue commands to kache using netcat or telnet as you please. kache has powered with many features managing a simple codebase with golang.

Roadmap

  • [x] Kache Server
  • [x] Basic Commands as a POC
  • [ ] Cluster Mode
  • [ ] Pub/Sub Pattern
  • [ ] Snapshots of data
  • [ ] Kache CLI
  • [ ] Client Libraries for popular languages
  • [ ] Documentation
  • [ ] Security
  • [ ] Improved data Structures
  • [ ] Website

Running kache

kache is a compiled program, download the one for your platform and extract the package to a directory you wish.

Go to that directory, open a command prompt and run the kache executable like

  • ./kache if you are on linux or mac
  • .\kache if you are on windows

This will start the application and port 7088 will be open by default.

Try to open telnet or netcat then

$: nc localhost 7088
ping

If you get the +PONG kache is working as expected.

Default configuration file can be found in config/kache-default.toml

kache can produce logs as you wish, in addition to default format it supports

  • json
  • logfmt

To run with a custom config file do

./kache --config=path/to/config/file.toml

Synopsis

A fast and a flexible in memory database built with go

kache [flags]

Options

      --config string    configuration file
  -d, --debug            output debug information
  -h, --help             help for kache
      --host string      host for running application (default "127.0.0.1")
      --logfile string   application log file
      --logging          set application logs (default true)
      --logtype string   kache can output logs in different formats like json or logfmt. The default one is custom to kache. (default "default")
      --maxClients int   max connections can be handled (default 10000)
      --maxTimeout int   max timeout for clients(in seconds) (default 120)
  -p, --port int         port for running application (default 7088)
  -v, --verbose          verbose output

Development

Prerequisites

  • Go 1.10.+

Installing mage

mage is the build tool we use for build kache. To install mage

Setting up workspace

  • Fork the repo
  • Go to your GOPATH if you don't know about it learn from here
  • Create a directory github.com/kasvith
  • Clone the repo into that directory and cd to it

Make sure you have an active internet connection as for the first time it will download some depedencies.

Build the kache

  • mage vendor will install all the dependencies of the project(will take some time)
  • mage kache will produce the binary of the kache in bin directory
  • mage kachecli will produce the binary of the kache-cli in bin directory

Other options

  • mage check will run gofmt, goimports, go vet and all tests with 32 bit platform including
  • mage fmt will run only gofmt on the code, will warn you when code has format errors
  • mage vet will reports suspicious constructs
  • mage imports will check import errors
  • mage test will run a unit test with defaults
  • mage test386 will run a test in 32-bit mode
  • mage testrace will run a test with race conditions enabled
  • mage -l for list all commands

Special note : According to your environment executable will be built, for windows users it will need to add .exe to the end of -o flag like go build -o bin/kache.exe ./cmd/kache

Contributions

kache is an opensource project. Contributions are welcome

  • Fork the repo and star it ⭐️
  • Open issues 💥
  • Raise PRs for issues ✋
  • Help on documentation 📄
  • Slack
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].