项目简介
本项目是基于 C 语言的 Redis 3.0 注释版源码项目,实现了 Redis 的多种核心功能,为学习和研究 Redis 提供了丰富的资源。
项目的主要特性和功能
- 丰富的数据结构:实现双端链表、字典、整数集合、SDS 等多种数据结构,支持字符串、列表、集合、哈希表、有序集合等多种数据类型。
- 事件处理:具备事件处理器,高效处理各种事件。
- 持久化功能:支持 RDB 和 AOF 两种持久化方式,保障数据持久存储。
- 集群和复制:实现 Redis 的集群和复制功能,提升系统可用性和扩展性。
- 发布与订阅:支持发布与订阅功能,便于实现消息传递。
- 事务和脚本:支持事务和 Lua 脚本功能,增强数据操作灵活性。
- 性能测试:包含性能测试程序,可对 Redis 性能进行测试。
安装使用步骤
编译
Redis 可在 Linux、OSX、OpenBSD、NetBSD、FreeBSD 上编译使用,支持大端和小端架构。
bash
make
make 32bit
make test
若要切换 32 位和 64 位编译,需先执行 make distclean
。若编译 32 位二进制文件出错,可尝试安装 libc6-dev-i386
(也可尝试 g++-multilib
),并使用 make CFLAGS="-m32 -march=native" LDFLAGS="-m32"
命令。
选择内存分配器
可通过设置 MALLOC
环境变量选择非默认内存分配器,默认使用 libc malloc(Linux 系统默认使用 jemalloc)。
bash
make MALLOC=libc
make MALLOC=jemalloc
开启详细构建输出
bash
make V=1
运行
bash
cd src
./redis-server
cd src
./redis-server /path/to/redis.conf
./redis-server --port 9999 --slaveof 127.0.0.1 6379
./redis-server /etc/redis/6379.conf --loglevel debug
交互操作
启动 redis-server
后,可在另一个终端使用 redis-cli
与 Redis 交互。
bash
cd src
./redis-cli
redis> ping
PONG
redis> set foo bar
OK
redis> get foo
"bar"
redis> incr mycounter
(integer) 1
redis> incr mycounter
(integer) 2
安装
bash
make install
make PREFIX=/some/other/directory install
若要在 Ubuntu 和 Debian 系统进行生产环境安装,可使用以下脚本:
bash
cd utils
./install_server.sh
安装后可使用 /etc/init.d/redis_<portnumber>
脚本启动和停止 Redis,如 /etc/init.d/redis_6379
。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】