DICEDB เป็นแคชที่สอดคล้องกับ REDIS, ปฏิกิริยา, ปรับขนาดได้, พร้อมใช้งานสูงและมีการปรับให้เหมาะสมสำหรับฮาร์ดแวร์ที่ทันสมัย
เรากำลังมองหาพันธมิตรการออกแบบยุคแรกดังนั้นหากคุณต้องการประเมิน DICEDB บล็อกปฏิทินของเรา เสมอสำหรับการแชท
คำเตือน
DICEDB อยู่ระหว่างการพัฒนาและสนับสนุนชุดย่อยของคำสั่ง REDIS ดังนั้นโปรดอย่าใช้ในการผลิต แต่อย่าลังเลที่จะผ่านปัญหาที่เปิดกว้างและมีส่วนร่วมเพื่อช่วยให้เราเร่งการพัฒนา
เรามีที่เก็บหลายแห่งที่คุณสามารถมีส่วนร่วมได้ ดังนั้นตามความสนใจของคุณคุณสามารถเลือกและสร้างความเข้าใจที่ลึกซึ้งยิ่งขึ้นของโครงการในระหว่างการเดินทาง
แม้ว่า DICEDB จะเป็นการแทนที่ REDIS แบบเลื่อนลงซึ่งหมายความว่าแทบจะไม่มีเส้นโค้งการเรียนรู้และการสลับไม่จำเป็นต้องมีการเปลี่ยนแปลงรหัสใด ๆ แต่ก็ยังแตกต่างกันในสองประเด็นสำคัญและพวกเขา
.WATCH
เช่น GET.WATCH
, ZRANGE.WATCH
ฯลฯ ที่ให้ลูกค้าฟังการเปลี่ยนแปลงข้อมูลและตั้งค่าผลลัพธ์แบบเรียลไทม์ทุกครั้งที่มีการเปลี่ยนแปลง . คำสั่ง .WATCH
ค่อนข้างมีประโยชน์เมื่อพูดถึงการสร้างแอพพลิเคชั่นเรียลไทม์อย่างแท้จริงเช่นกระดานผู้นำ
วิธีที่ง่ายที่สุดในการเริ่มต้นด้วย DICEDB คือการใช้ Docker โดยเรียกใช้คำสั่งต่อไปนี้
docker run -p 7379:7379 dicedb/dicedb --enable-multithreading --enable-watch
คำสั่งด้านบนจะเริ่มต้นเซิร์ฟเวอร์ DICEDB ที่ทำงานในเครื่องในพอร์ต 7379
และคุณสามารถเชื่อมต่อกับมันได้โดยใช้ DICEDB CLI และ SDKS
เคล็ดลับ
เนื่องจาก DICEDB เป็นตัวแทนที่ REDIS คุณจึงสามารถใช้ Redis CLI และ SDK ใด ๆ เพื่อเชื่อมต่อกับ DICEDB
ในการเรียกใช้ dicedB สำหรับการพัฒนาในท้องถิ่นหรือวิ่งจากแหล่งที่มาคุณจะต้อง
git clone https://github.com/dicedb/dice
cd dice
go run main.go --enable-multithreading --enable-watch
คุณสามารถข้ามการส่งธงทั้งสองได้หากคุณไม่ได้ทำงานกับคุณสมบัติมัลติเธรดหรือ .WATCH
sudo su
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b /bin v1.60.1
DICINGB จัดเตรียมสภาพแวดล้อมการพัฒนาที่เชื่อมโยงร้อนซึ่งช่วยให้คุณสามารถดูการเปลี่ยนแปลงรหัสของคุณในเซิร์ฟเวอร์สดได้ทันที ฟังก์ชั่นนี้รองรับทางอากาศ
ในการติดตั้งอากาศในระบบของคุณคุณมีตัวเลือกต่อไปนี้
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
เมื่อติดตั้ง air
แล้วคุณสามารถตรวจสอบการติดตั้งโดยใช้คำสั่ง air -v
ในการเรียกใช้เซิร์ฟเวอร์ Live DicedB สำหรับการพัฒนาในท้องถิ่น:
git clone https://github.com/dicedb/dice
cd dice
air
โดยค่าเริ่มต้น DICEDB จะค้นหาไฟล์การกำหนดค่าที่ /etc/dice/config.toml
(Linux, Darwin และ 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
บันทึก
หากคุณใช้ Windows ขอแนะนำให้ใช้ระบบย่อย Windows สำหรับ Linux (WSL) หรือ WSL 2 เพื่อเรียกใช้คำสั่งด้านบนอย่างราบรื่นในสภาพแวดล้อมที่มีลักษณะคล้าย Linux
หากคุณต้องการใช้ตำแหน่งอื่นคุณสามารถระบุเส้นทางไฟล์การกำหนดค่าที่กำหนดเองด้วย -c flag
:
go run main.go -c /path/to/config.toml
หากคุณต้องการส่งออกไฟล์การกำหนดค่าไปยังตำแหน่งเฉพาะคุณสามารถระบุเส้นทางเอาต์พุตที่กำหนดเองด้วย -o flag
:
go run main.go -o /path/of/output/dir
วิธีที่ดีที่สุดในการเชื่อมต่อกับ DICEDB คือการใช้ DICEDB CLI และคุณสามารถติดตั้งได้โดยเรียกใช้คำสั่งต่อไปนี้
sudo su
curl -sL https://raw.githubusercontent.com/DiceDB/dicedb-cli/refs/heads/master/install.sh | sh
DICEDB เข้ากันได้อย่างสมบูรณ์กับโปรโตคอล REDIS ช่วยให้คุณสามารถเชื่อมต่อโดยใช้ไคลเอนต์ REDIS หรือ SDK ที่มีอยู่
บันทึก
คุณสมบัติ .WATCH
สามารถเข้าถึงได้ผ่าน DICEDB CLI เท่านั้น หากคุณกำลังทำงานกับระบบปฏิบัติการที่ไม่ได้รับการสนับสนุน (ตามสคริปต์ข้างต้น) คุณสามารถทำตามคำแนะนำการติดตั้งที่กล่าวถึงในที่เก็บ DICEDB/CLI
การทดสอบหน่วยและการทดสอบการรวมเป็นสิ่งจำเป็นสำหรับการรับรองความถูกต้องและในกรณีของ DICASEB การทดสอบทั้งสองประเภทมีให้เพื่อตรวจสอบการทำงานของมัน
สำหรับการทดสอบหน่วยคุณสามารถดำเนินการทดสอบแต่ละหน่วยโดยระบุชื่อของฟังก์ชั่นการทดสอบโดยใช้ตัวแปรสภาพแวดล้อม TEST_FUNC
และเรียกใช้คำสั่ง make unittest-one
อีกทางเลือกหนึ่งการเรียกใช้ make unittest
จะดำเนินการทดสอบหน่วยทั้งหมด
TEST_FUNC= < name of the test function > make unittest-one
TEST_FUNC=TestByteList make unittest-one
make unittest
ในทางกลับกันการทดสอบการรวมเกี่ยวข้องกับการเริ่มต้นเซิร์ฟเวอร์ DICEDB และเรียกใช้ชุดคำสั่งเพื่อตรวจสอบสถานะสิ้นสุดและเอาต์พุตที่คาดหวัง ในการดำเนินการทดสอบการรวมครั้งเดียวคุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม TEST_FUNC
เป็นชื่อของฟังก์ชั่นการทดสอบและเรียก make test-one
การรัน make test
จะดำเนินการทดสอบการรวมทั้งหมด
TEST_FUNC= < name of the test function > make test-one
TEST_FUNC=TestSet make test-one
make test
ทำงานเพื่อเพิ่มการทดสอบเพิ่มเติมใน DICEDB กำลังดำเนินการอยู่และในไม่ช้าเราจะพอร์ตการทดสอบ REDIS Suite ไปยัง codebase นี้เพื่อให้แน่ใจว่าเข้ากันได้อย่างเต็มที่
make run_benchmark
ในการเริ่มต้นกับการสร้างและมีส่วนร่วมใน DICEDB โปรดดูปัญหาที่สร้างขึ้นในที่เก็บนี้
เราใช้ Framework Astro เพื่อเพิ่มพลังเว็บไซต์ dicedb.io และแสงดาวเพื่อเพิ่มพลังให้กับเอกสาร เมื่อคุณติดตั้ง NodeJS แล้วให้ใช้คำสั่งต่อไปนี้เพื่อให้ DICINGB.IO ทำงานเวอร์ชันท้องถิ่นของคุณ
cd docs
npm install
npm run dev
เมื่อเซิร์ฟเวอร์เริ่มต้นให้ไปที่ http: // localhost: 4321/ในเบราว์เซอร์ที่คุณชื่นชอบ สิ่งนี้ทำงานด้วยการโหลดซ้ำซึ่งหมายถึงการเปลี่ยนแปลงใด ๆ ที่คุณทำในเว็บไซต์และเอกสารสามารถดูได้ทันทีบนเบราว์เซอร์
docs/src/content/docs/commands
เป็นที่ที่มีการบันทึกคำสั่งทั้งหมดdocs/src/content/docs/tutorials
เป็นที่ที่มีการบันทึกการสอนทั้งหมด DICINGB เริ่มต้นจากการใช้ Redis ใน Golang อีกครั้งด้วยความคิดในการสร้างฐานข้อมูลจากศูนย์เพื่อทำความเข้าใจเกี่ยวกับความสำคัญทางไมโครที่มาพร้อมกับการดำเนินการ DICEDB ไม่ใช่แค่ฐานข้อมูลอื่น มันเป็นแพลตฟอร์มที่สร้างขึ้นสำหรับยุคเรียลไทม์ เมื่อระบบเรียลไทม์แพร่หลายมากขึ้นเรื่อย ๆ ในแอพพลิเคชั่นที่ทันสมัยสถาปัตยกรรมที่ปรับให้เหมาะสมของ DICEDB นั้นอยู่ในตำแหน่งที่จะเพิ่มพลังให้กับประสบการณ์ของผู้ใช้รุ่นต่อไป
แนวทางการบริจาครหัสถูกเผยแพร่ที่การสนับสนุน/readme.md; โปรดอ่านพวกเขาก่อนที่จะเริ่มการเปลี่ยนแปลงใด ๆ สิ่งนี้จะช่วยให้เรามีมาตรฐานการเขียนโค้ดที่สอดคล้องกันและประสบการณ์นักพัฒนา
ผู้ร่วมให้ข้อมูลสามารถเข้าร่วมเซิร์ฟเวอร์ Discord สำหรับการทำงานร่วมกันอย่างรวดเร็ว
$ sudo netstat -atlpn | grep :7379
$ sudo kill -9 <process_id>