redis源码怎么使用_redisson源码

hacker|
119

文章目录:

windows7下怎么使用redis

安装Redis

1、在linux环境下Redis可以直接通过源码编译安装。Windows下编译一般不那么方便,我们使用已经编译好的.msi安装包来安装。

首先找到Windows下的Redis安装包

打开官网下载页面找到"Windows"项然后点击“Learn more”,打开github项目

2、找到Redis安装包并下载

在上一步打开github页面中下拉找到README.md里面的"Redis on Windows"项,这里有一句”You can download the latest unsigned binaries and the unsigned MSI installer from the release page.“.点击”release page“打开下载页面,这里可以选择对应的版本下载。

这里我选择版本3.0.501然后在页面下点击“Redis-x64-3.0.501.msi"下载安装包

3、安装Redis

下载Redis-x64-3.0.501.msi之后双击打开安装配置页面,一般来说默认即可,但是你要知道配置项的意思,根据具体情况配置。最后点击install即可安装。

启动Redis

1、安装之后发现安装目录F:\ProgramFiles\Redis有很多.exe文件。这里就和linux下一样了。

进入redis安装目录后 开启服务 执行下面的命令:

$ ./redis-server.exe redis.windows.conf

[10600] 22 Mar 02:39:36.897 # Creating Server TCP listening socket *:6379: bind: Unknown error

如果出现上面的错误查看端口是否被占用,我的是右击有redis-server.exe服务开启了,关掉重新执行命令即可;

2、测试使用

网上看到有人说开启一个命令行窗口 进入redis目录下,执行

redis-cli.exe -h 127.0.0.1 -p 6379 这样连接服务,不过我这里没执行成功。

我直接双击redis-cli.exe 即可打开终端,试了下ok。

3、这里顺利在Windows上面安装Redis,当然还有很多更深的东西在,这里就不多说了,有兴趣的同学可以从运维的角度和开发的角度分别进一步学习Redis

如何高效深入的阅读Redis的源码

在这篇文章中, 我将向大家介绍一种我认为比较合理的 Redis 源码阅读顺序, 希望可以给对 Redis 有兴趣并打算阅读 Redis 源码的朋友带来一点帮助。

第 1 步:阅读数据结构实现

刚开始阅读 Redis 源码的时候, 最好从数据结构的相关文件开始读起, 因为这些文件和 Redis 中的其他部分耦合最少, 并且这些文件所实现的数据结构在大部分算法书上都可以了解到, 所以从这些文件开始读是最轻松的、难度也是最低的。

下表列出了 Redis 源码中, 各个数据结构的实现文件:

文件 内容

sds.h 和 sds.c Redis 的动态字符串实现。

adlist.h 和 adlist.c Redis 的双端链表实现。

dict.h 和 dict.c Redis 的字典实现。

redis.h 中的 zskiplist 结构和 zskiplistNode 结构, 以及 t_zset.c 中所有以 zsl 开头的函数, 比如 zslCreate 、 zslInsert 、 zslDeleteNode ,等等。 Redis 的跳跃表实现。

hyperloglog.c 中的 hllhdr 结构, 以及所有以 hll 开头的函数。 Redis 的 HyperLogLog 实现。

第 2 步:阅读内存编码数据结构实现

在阅读完和数据结构有关的文件之后, 接下来就应该阅读内存编码(encoding)数据结构了。

和普通的数据结构一样, 内存编码数据结构基本上是独立的, 不和其他模块耦合, 但是区别在于:

上一步要读的数据结构, 比如双端链表、字典、HyperLogLog, 在算法书上或者相关的论文上都可以找到资料介绍。

而内存编码数据结构却不容易找到相关的资料, 因为这些数据结构都是 Redis 为了节约内存而专门开发出来的, 换句话说, 这些数据结构都是特制(adhoc)的, 除了 Redis 源码中的文档之外, 基本上找不到其他资料来了解这些特制的数据结构。

不过话又说回来, 虽然内存编码数据结构是 Redis 特制的, 但它们基本都和内存分配、指针操作、位操作这些底层的东西有关, 读者只要认真阅读源码中的文档, 并在有需要时, 画图来分析这些数据结构, 那么要完全理解这些内存编码数据结构的运作原理并不难, 当然这需要花一些功夫。

下表展示了 Redis 源码中, 各个内存编码数据结构的实现文件:

文件 内容

intset.h 和 intset.c 整数集合(intset)数据结构。

ziplist.h 和 ziplist.c 压缩列表(zip list)数据结构。

第 3 步:阅读数据类型实现

在完成以上两个阅读步骤之后, 我们就读完了 Redis 六种不同类型的键(字符串、散列、列表、集合、有序集合、HyperLogLog)的所有底层实现结构了。

接下来, 为了知道 Redis 是如何通过以上提到的数据结构来实现不同类型的键, 我们需要阅读实现各个数据类型的文件, 以及 Redis 的对象系统文件, 这些文件包括:

文件 内容

object.c Redis 的对象(类型)系统实现。

t_string.c 字符串键的实现。

t_list.c 列表键的实现。

t_hash.c 散列键的实现。

t_set.c 集合键的实现。

t_zset.c 中除 zsl 开头的函数之外的所有函数。 有序集合键的实现。

hyperloglog.c 中所有以 pf 开头的函数。 HyperLogLog 键的实现。

第 4 步:阅读数据库实现相关代码

在读完了 Redis 使用所有底层数据结构, 以及 Redis 是如何使用这些数据结构来实现不同类型的键之后, 我们就可以开始阅读 Redis 里面和数据库有关的代码了, 它们分别是:

文件 内容

redis.h 文件中的 redisDb 结构, 以及 db.c 文件。 Redis 的数据库实现。

notify.c Redis 的数据库通知功能实现代码。

rdb.h 和 rdb.c Redis 的 RDB 持久化实现代码。

aof.c Redis 的 AOF 持久化实现代码。

选读

Redis 有一些独立的功能模块, 这些模块可以在完成第 4 步之后阅读, 它们包括:

文件 内容

redis.h 文件的 pubsubPattern 结构,以及 pubsub.c 文件。 发布与订阅功能的实现。

redis.h 文件的 multiState 结构以及 multiCmd 结构, multi.c 文件。 事务功能的实现。

sort.c SORT 命令的实现。

bitops.c GETBIT 、 SETBIT 等二进制位操作命令的实现。

第 5 步:阅读客户端和服务器的相关代码

在阅读完数据库实现代码, 以及 RDB 和 AOF 两种持久化的代码之后, 我们可以开始阅读客户端和 Redis 服务器本身的实现代码, 和这些代码有关的文件是:

文件 内容

ae.c ,以及任意一个 ae_*.c 文件(取决于你所使用的多路复用库)。 Redis 的事件处理器实现(基于 Reactor 模式)。

networking.c Redis 的网络连接库,负责发送命令回复和接受命令请求, 同时也负责创建/销毁客户端, 以及通信协议分析等工作。

redis.h 和 redis.c 中和单机 Redis 服务器有关的部分。 单机 Redis 服务器的实现。

如果读者能完成以上 5 个阅读步骤的话, 那么恭喜你, 你已经了解了单机的 Redis 服务器是怎样处理命令请求和返回命令回复, 以及是 Redis 怎样操作数据库的了, 这是 Redis 最重要的部分, 也是之后继续阅读多机功能的基础。

选读

Redis 有一些独立的功能模块, 这些模块可以在完成第 5 步之后阅读, 它们包括:

文件 内容

scripting.c Lua 脚本功能的实现。

slowlog.c 慢查询功能的实现。

monitor.c 监视器功能的实现。

第 6 步:阅读多机功能的实现

在弄懂了 Redis 的单机服务器是怎样运作的之后, 就可以开始阅读 Redis 多机功能的实现代码了, 和这些功能有关的文件为:

文件 内容

replication.c 复制功能的实现代码。

sentinel.c Redis Sentinel 的实现代码。

cluster.c Redis 集群的实现代码。

注意, 因为 Redis Sentinel 用到了复制功能的代码, 而集群又用到了复制和 Redis Sentinel 的代码, 所以在阅读这三个模块的时候, 记得先阅读复制模块, 然后阅读 Sentinel 模块, 最后才阅读集群模块, 这样理解起来就会更得心应手。

如果你连这三个模块都读完了的话, 那么恭喜你, 你已经读完了 Redis 单机功能和多机功能的所有代码了!

下图总结了本文介绍的阅读顺序:

digraph {

node [shape = plaintext]

datastruct [label = "数据结构\n(sds、adlist、dict、t_zset、hyperloglog)"]

encoding_datastruct [label = "内存编码数据结构\n(intset、ziplist)"]

object [label = "数据类型\n(object、t_string、t_list、t_hash、t_set、t_zset、hyperloglog)"]

db [label = "数据库相关\n(db、notify、rdb、aof)"]

client_and_server [label = "客户端与服务器相关\n(ae、networking、redis)"]

multi_server [label = "多机功能\n(replication、sentinel、cluster)"]

//

datastruct - encoding_datastruct - object - db - client_and_server - multi_server

}

结语

Redis 的设计非常简洁、优美、精巧和高效, 任何人只要愿意去阅读它的代码的话, 应该都会有所收获的。

希望这篇文章能够给想要阅读 Redis 代码的朋友们带来一些帮助, 也欢迎各位随时和我讨论 Redis 源码方面的问题, 或者跟我分享各位阅读 Redis 源码的心得和经验。

另外我的 Redis 源码注释 项目以及 《Redis 设计与实现》 一书对于理解 Redis 的源代码应该也会有所帮助, 有兴趣的朋友可以自行了解该项目/书本。

黄健宏(huangz)

2014.7.28

ubuntu下redis 怎么在程序中使用

一、获取Redis

二、编译安装Redis

1、解压源码安装包,通过tar -xvf redis-3.0.2.tar.gz解压源码,速度相当快;

2、进入解压后的目录,执行make编译源码;

make命令执行完成后,会在src目录下生成6个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-dump、redis-sentinel。

3、执行make install安装,或者通过make PREFIX=/usr/local/redis install指定安装目录。这里默认安装,默认将之前生成的可执行文件拷贝到/usr/local/bin目录下;

配置运行

三、修改配置文件

1、将源码目录下redis配置文件redis.conf拷贝到/etc/redis目录下。

2、修改配置项,根据需要;如果不修改,使用默认配置也可以;

四、启动服务:

1、查看端口是否被占用:netstat –ntlp |grep 6379

方式一:通过命令redis-server 启动,可在命令后加上``号使redis以后台程序方式运行;

方式二:通过指定配置文件启动;redis-server /etc/redis/redis.conf

默认安装的路径已经加入环境变量中,可直接在命令行执行命令;

五、命令客户端检测链接

1、连接之前可以先检测服务是否启动;

2、测试启动 redis-cli ping 返回PONG,启动成功。

停止Redis:

关闭服务

redis-cli shutdown

如果非默认端口,可指定端口:

redis-cli -p 6380 shutdown

简单操作:

1、两种连接方式:

1:window DOS方式:tentel主机IP端口号(默认为127.0.0.1:6379)

2:linux客户端方式:redis-cli 主机IP 端口号(默认为127.0.0.1 6379)

2、命令行操作:

#redis-cli

redis 127.0.0.1:6379 set name clj

OK

redis 127.0.0.1:6379 get name

"clj"

windows版redis怎么使用

在linux环境下Redis可以直接通过源码编译安装。Windows下编译一般不那么方便,我们使用已经编译好的.msi安装包来安装。

首先找到Windows下的Redis安装包

打开官网下载页面找到"Windows"项然后点击“Learn more”,打开github项目

找到Redis安装包并下载

在上一步打开github页面中下拉找到README.md里面的"Redis on Windows"项,这里有一句”You can download the latest unsigned binaries and the unsigned MSI installer from the release page.“.点击”release page“打开下载页面,这里可以选择对应的版本下载。

这里我选择版本3.0.501然后在页面下点击“Redis-x64-3.0.501.msi"下载安装包

安装Redis

下载Redis-x64-3.0.501.msi之后双击打开安装配置页面,一般来说默认即可,但是你要知道配置项的意思,根据具体情况配置。最后点击install即可安装。

3条大神的评论

  • avatar
    访客 2022-07-03 下午 02:26:03

    下怎么使用redis安装Redis1、在linux环境下Redis可以直接通过源码编译安装。Windows下编译一般不那么方便,我们使用已经编译好的.msi安装包来安装。首先找到Windo

  • avatar
    访客 2022-07-03 上午 10:08:19

    。 rdb.h 和 rdb.c Redis 的 RDB 持久化实现代码。 aof.c Redis 的 AOF 持久化实现代码。 选读Redis 有一些独立的功能模块, 这些模块可以在完成第 4 步之后阅读, 它们包括:文件 内容 redis.h 文件的 pubs

  • avatar
    访客 2022-07-03 下午 05:03:13

    exe服务开启了,关掉重新执行命令即可;2、测试使用网上看到有人说开启一个命令行窗口 进入redis目录下,执行redis-cli.exe -h 127.0.0.1 -p 6379 这样连接服务,不过我这里没执行成功。我直接双击redis-cli

发表评论