O DicedB é um cache compatível com Redis, reativo, escalável, altamente disponível e unificado otimizado para o hardware moderno.
Estamos à procura de parceiros de design iniciais; portanto, se você deseja avaliar o DicedB, bloqueie nosso calendário. sempre para um bate -papo.
Cuidado
O DicedB está em desenvolvimento e suporta um subconjunto de comandos Redis. Então, por favor, não o use na produção. Mas sinta -se à vontade para passar pelas questões abertas e contribuir para nos ajudar a acelerar o desenvolvimento.
Temos vários repositórios onde você pode contribuir. Portanto, de acordo com o seu interesse, você pode escolher um e criar uma compreensão mais profunda do projeto em movimento.
Embora o DicedB seja uma substituição de redução de redis, o que significa que quase nenhuma curva de aprendizado e a comutação não requer nenhuma alteração de código, ela ainda difere em dois aspectos principais e eles são
.WATCH
como GET.WATCH
, ZRANGE.WATCH
, etc. que permitem que os clientes ouçam as alterações de dados e obtenham o conjunto de resultados em tempo real sempre que algo mudar. Os comandos .WATCH
são bastante úteis quando se trata de criar aplicativos verdadeiramente em tempo real, como o líder.
A maneira mais fácil de começar o DicedB é usar o Docker executando o seguinte comando.
docker run -p 7379:7379 dicedb/dicedb --enable-multithreading --enable-watch
O comando acima iniciará o servidor DicedB em execução localmente na porta 7379
e você poderá se conectar a ele usando CLI e SDKs DICEDB.
Dica
Como o DicedB é um substituto para o Redis, você também pode usar qualquer CLI e SDK Redis para conectar-se ao DicedB.
Para executar o DicedB para o desenvolvimento local ou fugir da fonte, você precisará
git clone https://github.com/dicedb/dice
cd dice
go run main.go --enable-multithreading --enable-watch
Você pode pular passando pelos dois sinalizadores se não estiver trabalhando com os .WATCH
.
sudo su
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /bin v1.60.1
O DicedB fornece um ambiente de desenvolvimento de reloadia a quente, que permite visualizar instantaneamente suas alterações de código em um servidor ao vivo. Esta funcionalidade é suportada pelo ar
Para instalar o ar no seu sistema, você tem as seguintes opções.
go install github.com/air-verse/air@latest
# binary will be installed at $(go env GOPATH)/bin/air
curl -sSfL https://raw.githubusercontent.com/air-verse/air/master/install.sh | sh -s -- -b $( go env GOPATH ) /bin
Depois que air
estiver instalado, você pode verificar a instalação usando o comando air -v
Para executar o servidor Live DicedB para desenvolvimento local:
git clone https://github.com/dicedb/dice
cd dice
air
Por padrão, o DicedB procurará o arquivo de configuração em /etc/dice/config.toml
. (Linux, Darwin e WSL)
# set up configuration file # (optional but recommended)
sudo mkdir -p /etc/dice
sudo chown root: $USER /etc/dice
sudo chmod 775 /etc/dice # or 777 if you are the only user
git clone https://github.com/DiceDB/dice.git
cd dice
go run main.go -init-config
Observação
Se você estiver usando o Windows, é recomendável usar o Subsistema do Windows para Linux (WSL) ou WSL 2 para executar os comandos acima sem problemas em um ambiente do tipo Linux.
Se você deseja usar um local diferente, pode especificar um caminho de arquivo de configuração personalizado com o -c flag
:
go run main.go -c /path/to/config.toml
Se você deseja produzir o arquivo de configuração para um local específico, você pode especificar um caminho de saída personalizado com o -o flag
:
go run main.go -o /path/of/output/dir
A melhor maneira de conectar -se ao DicedB é usar o DicedB CLI e você pode instalá -lo executando o seguinte comando
sudo su
curl -sL https://raw.githubusercontent.com/DiceDB/dicedb-cli/refs/heads/master/install.sh | sh
O DicedB é totalmente compatível com o Redis Protocol, permitindo que você se conecte usando qualquer cliente Redis existente ou SDK.
Observação
O recurso .WATCH
é acessível apenas através da CLI de picada. Se você estiver trabalhando no sistema operacional não suportado (conforme o script acima), sempre poderá seguir as instruções de instalação mencionadas no repositório DicedB/CLI.
Os testes de unidade e os testes de integração são essenciais para garantir a correção e, no caso do DicedB, ambos os tipos de testes estão disponíveis para validar sua funcionalidade.
Para testes de unidade, você pode executar testes de unidade individuais especificando o nome da função de teste usando a variável de ambiente TEST_FUNC
e executando o comando make unittest-one
. Como alternativa, a execução do make unittest
executará todos os testes de unidade.
TEST_FUNC= < name of the test function > make unittest-one
TEST_FUNC=TestByteList make unittest-one
make unittest
Os testes de integração, por outro lado, envolvem iniciar o servidor DicedB e a execução de uma série de comandos para verificar o estado final e a saída esperados. Para executar um único teste de integração, você pode definir a variável de ambiente TEST_FUNC
para o nome da função de teste e executar make test-one
. A execução make test
criação será executada em todos os testes de integração.
TEST_FUNC= < name of the test function > make test-one
TEST_FUNC=TestSet make test-one
make test
O trabalho para adicionar mais testes no DicedB está em andamento, e em breve portaremos o teste Redis Suite para esta base de código para garantir a compatibilidade total.
make run_benchmark
Para começar a construir e contribuir com o DicedB, consulte os problemas criados neste repositório.
Usamos a estrutura da Astro para alimentar o site e a Starlight para alimentar os documentos. Depois de instalar o NodeJS, dispare os seguintes comandos para colocar sua versão local do dicedb.io em execução.
cd docs
npm install
npm run dev
Quando o servidor começar, visite http: // localhost: 4321/no seu navegador favorito. Isso funciona com uma recarga quente, o que significa que todas as alterações fazem no site e a documentação pode ser visualizada instantaneamente no navegador.
docs/src/content/docs/commands
é onde todos os comandos estão documentadosdocs/src/content/docs/tutorials
é onde todos os tutoriais estão documentados O DicedB começou como uma reimplementação de Redis em Golang com a idéia de construir um db do zero para entender as micro-nuances que acompanham sua implementação. O DicedB não é apenas mais um banco de dados; É uma plataforma criada para a era em tempo real. À medida que os sistemas em tempo real se tornam cada vez mais predominantes em aplicações modernas, a arquitetura hiper-otimizada do DicedB é posicionada para alimentar a próxima geração de experiências do usuário.
As diretrizes de contribuição do código são publicadas no contribuindo/readme.md; Por favor, leia -os antes de começar a fazer alterações. Isso nos permitiria ter um padrão consistente de práticas de codificação e experiência do desenvolvedor.
Os colaboradores podem ingressar no servidor Discord para colaboração rápida.
$ sudo netstat -atlpn | grep :7379
$ sudo kill -9 <process_id>