DICTEB es un caché unificado compatible con Redis, reactivo, escalable, altamente disponible, optimizado para el hardware moderno.
Estamos buscando socios de diseño tempranos, por lo tanto, si desea evaluar DICEDB, bloquee nuestro calendario. Siempre listo para charlar.
Precaución
DateB está en desarrollo y admite un subconjunto de comandos Redis. Por lo tanto, no lo use en producción. Pero, no dude en pasar por los problemas abiertos y contribuir para ayudarnos a acelerar el desarrollo.
Tenemos múltiples repositorios donde puede contribuir. Entonces, según su interés, puede elegir uno y construir una comprensión más profunda del proyecto sobre la marcha.
Aunque DICEDB es un reemplazo de Redis, lo que significa que casi ninguna curva de aprendizaje y el cambio no requieren ningún cambio de código, todavía difiere en dos aspectos clave y lo son.
.WATCH
como GET.WATCH
, ZRANGE.WATCH
, etc. que permite a los clientes escuchar los cambios de datos y obtener el resultado establecido en tiempo real cada vez que algo cambia. Los comandos .WATCH
son bastante útiles cuando se trata de construir aplicaciones verdaderamente en tiempo real como la tabla de clasificación.
La forma más fácil de comenzar con DICTEB es usar Docker ejecutando el siguiente comando.
docker run -p 7379:7379 dicedb/dicedb --enable-multithreading --enable-watch
El comando anterior iniciará el servidor DICEDB que se ejecuta localmente en el puerto 7379
y puede conectarse a él utilizando DICEDB CLI y SDKS.
Consejo
Dado que DICEDB es un reemplazo de Redis, también puede usar cualquier Redis CLI y SDK para conectarse a DICEDB.
Para ejecutar dicesb para el desarrollo local o salir desde la fuente, necesitará
git clone https://github.com/dicedb/dice
cd dice
go run main.go --enable-multithreading --enable-watch
Puede omitir el paso de las dos banderas si no está trabajando con funciones de múltiples .WATCH
o.
sudo su
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /bin v1.60.1
DICTEB proporciona un entorno de desarrollo de recuperación de calor, que le permite ver instantáneamente sus cambios de código en un servidor en vivo. Esta funcionalidad es compatible con el aire
Para instalar aire en su sistema, tiene las siguientes opciones.
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
Una vez que se instala air
, puede verificar la instalación utilizando el comando air -v
Para ejecutar el servidor DICEDB en vivo para el desarrollo local:
git clone https://github.com/dicedb/dice
cd dice
air
De forma predeterminada, DICTEB buscará el archivo de configuración en /etc/dice/config.toml
. (Linux, Darwin y 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
Nota
Si está utilizando Windows, se recomienda usar el subsistema de Windows para Linux (WSL) o WSL 2 para ejecutar los comandos anteriores sin problemas en un entorno similar a Linux.
Si desea usar una ubicación diferente, puede especificar una ruta de archivo de configuración personalizada con el -c flag
:
go run main.go -c /path/to/config.toml
Si desea emitir el archivo de configuración a una ubicación específica, puede especificar una ruta de salida personalizada con el -o flag
:
go run main.go -o /path/of/output/dir
La mejor manera de conectarse a DICTEB es usar DICTEB CLI y puede instalarlo ejecutando el siguiente comando
sudo su
curl -sL https://raw.githubusercontent.com/DiceDB/dicedb-cli/refs/heads/master/install.sh | sh
DateB es totalmente compatible con el protocolo Redis, lo que le permite conectarse con cualquier cliente Redis o SDK existente.
Nota
La función .WATCH
solo se puede acceder a través de la CLI DICTEB. Si está trabajando en el sistema operativo no compatible (según el script anterior), siempre puede seguir las instrucciones de instalación mencionadas en el repositorio DICEDB/CLI.
Las pruebas unitarias y las pruebas de integración son esenciales para garantizar la corrección y, en el caso de DateB, ambos tipos de pruebas están disponibles para validar su funcionalidad.
Para las pruebas unitarias, puede ejecutar pruebas unitarias individuales especificando el nombre de la función de prueba utilizando la variable de entorno TEST_FUNC
y ejecutando el comando make unittest-one
. Alternativamente, ejecutar make unittest
ejecutará todas las pruebas unitarias.
TEST_FUNC= < name of the test function > make unittest-one
TEST_FUNC=TestByteList make unittest-one
make unittest
Las pruebas de integración, por otro lado, implican iniciar el servidor DICEDB y ejecutar una serie de comandos para verificar el estado final y la salida esperados. Para ejecutar una sola prueba de integración, puede establecer la variable de entorno TEST_FUNC
en el nombre de la función de prueba y ejecutar make test-one
. Ejecutar make test
ejecutará todas las pruebas de integración.
TEST_FUNC= < name of the test function > make test-one
TEST_FUNC=TestSet make test-one
make test
El trabajo para agregar más pruebas en DICEDB está en progreso, y pronto transferiremos el conjunto de pruebas Redis a esta base de código para garantizar una compatibilidad completa.
make run_benchmark
Para comenzar a construir y contribuir a DICEDB, consulte los problemas creados en este repositorio.
Utilizamos Astro Framework para alimentar el sitio web DICTEB.IO y Starlight para alimentar los documentos. Una vez que tenga NodeJS instalado, dispare los siguientes comandos para que se ejecute su versión local de DateB.io.
cd docs
npm install
npm run dev
Una vez que se inicia el servidor, visite http: // localhost: 4321/en su navegador favorito. Esto se ejecuta con una recarga caliente, lo que significa cualquier cambio que realice en el sitio web y la documentación se puede ver instantáneamente en el navegador.
docs/src/content/docs/commands
es donde se documentan todos los comandosdocs/src/content/docs/tutorials
es donde se documentan todos los tutoriales DateB comenzó como una reimplementación de Redis en Golang con la idea de construir un DB desde cero para comprender las micro-nuancias que vienen con su implementación. DateB no es solo otra base de datos; Es una plataforma diseñada especialmente para la era en tiempo real. A medida que los sistemas en tiempo real se vuelven cada vez más frecuentes en las aplicaciones modernas, la arquitectura hiper-optimizada de DICEDB se posiciona para alimentar la próxima generación de experiencias de los usuarios.
Las pautas de contribución del código se publican en contribuyente/readMe.md; Léelos antes de comenzar a hacer cualquier cambio. Esto nos permitiría tener un estándar consistente de prácticas de codificación y experiencia en desarrolladores.
Los contribuyentes pueden unirse al servidor Discord para una colaboración rápida.
$ sudo netstat -atlpn | grep :7379
$ sudo kill -9 <process_id>