项目简介
本项目摘录了Redis(版本3.2.0)的实现逻辑,便于开发者对Redis的实现细节进行备忘与学习。Redis是开源的、用ANSI C语言编写的数据库,支持网络,可基于内存,也能持久化,是日志型的Key - Value数据库,提供多种语言的API,常被称为非关系型数据库。
项目的主要特性和功能
Redis特性
- 数据类型丰富,支持list、set、sorted set、hash等多种数据类型,每种类型有对应操作指令。
- 提供RDB和AOF两种持久化方法,能在服务器重启时还原数据库状态。
- 高性能,数据存于内存,操作速度快,同时可持久化到磁盘保证数据非易失性。
- 多平台支持,可在Linux、OSX、OpenBSD、NetBSD、FreeBSD等系统编译和使用。
常用指令功能
- 基本键值操作,支持SET、SETNX、GET、DEL、INCR等操作,用于设置、获取、删除和增加键值。
- 数据类型操作,不同数据类型有各自操作指令,如list的RPUSH、LPUSH,set的SADD、SREM等。
安装使用步骤
编译
- 进入项目根目录,执行
make
命令编译。 - 若编译32位版本的Redis二进制文件,执行
make 32bit
。 - 编译完成后,建议执行
make test
测试。
解决编译问题
- 若更新源代码或依赖项有修改,执行
make distclean
清理并重新编译。 - 若构建32位二进制文件出错,可尝试安装
libc6-dev-i386
(或g++-multilib
),并使用make CFLAGS="-m32 -march=native" LDFLAGS="-m32"
命令。
选择内存分配器
- 若强制使用libc malloc编译,执行
make MALLOC=libc
。 - 在Mac OS X系统上使用jemalloc编译,执行
make MALLOC=jemalloc
。
运行
- 使用默认配置运行Redis,执行
cd src
,然后./redis-server
。 - 使用自定义配置文件,执行
cd src
,然后./redis-server /path/to/redis.conf
。 - 也可在命令行直接传递参数修改配置,如
./redis-server --port 9999 --slaveof 127.0.0.1 6379
。
测试使用
启动Redis服务器后,在另一个终端执行cd src
,然后./redis-cli
,即可使用Redis客户端进行操作,如ping
、set
、get
等。
安装
- 若将Redis二进制文件安装到
/usr/local/bin
,执行make install
。 - 若指定安装目录,执行
make PREFIX=/some/other/directory install
。 - 对于Ubuntu和Debian系统,可执行
cd utils
,然后./install_server.sh
进行生产环境的配置。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】