Redis7.0源码安装与部署

环境依赖

gcc gcc-c++

[root@redis ~]# yum install gcc* -y

下载安装包

[root@redis ~]# wget https://download.redis.io/redis-stable.tar.gz
--2023-07-13 16:54:01--  https://download.redis.io/redis-stable.tar.gz
Resolving download.redis.io (download.redis.io)... 45.60.125.1
Connecting to download.redis.io (download.redis.io)|45.60.125.1|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3071850 (2.9M) [application/octet-stream]
Saving to: ‘redis-stable.tar.gz’

100%[======================================>] 3,071,850   29.8KB/s   in 65s    

2023-07-13 16:55:06 (46.3 KB/s) - ‘redis-stable.tar.gz’ saved [3071850/3071850]

[root@redis ~]# ll
total 3004
-rw-------. 1 root root    1294 Jul 13 11:32 anaconda-ks.cfg
-rw-r--r--. 1 root root 3071850 Jul 10 19:52 redis-stable.tar.gz

解压缩


[root@redis ~]# tar -zxf redis-stable.tar.gz 


[root@redis ~]# ll -h redis-stable
total 272K
-rw-rw-r--.  1 1000 1000  45K Jul 10 19:39 00-RELEASENOTES
-rw-rw-r--.  1 1000 1000   51 Jul 10 19:39 BUGS
-rw-rw-r--.  1 1000 1000 5.0K Jul 10 19:39 CODE_OF_CONDUCT.md
-rw-rw-r--.  1 1000 1000 2.6K Jul 10 19:39 CONTRIBUTING.md
-rw-rw-r--.  1 1000 1000 1.5K Jul 10 19:39 COPYING
drwxrwxr-x.  7 1000 1000  119 Jul 10 19:39 deps
-rw-rw-r--.  1 1000 1000   11 Jul 10 19:39 INSTALL
-rw-rw-r--.  1 1000 1000  151 Jul 10 19:39 Makefile
-rw-rw-r--.  1 1000 1000 6.8K Jul 10 19:39 MANIFESTO
-rw-rw-r--.  1 1000 1000  22K Jul 10 19:39 README.md
-rw-rw-r--.  1 1000 1000 105K Jul 10 19:39 redis.conf
-rwxrwxr-x.  1 1000 1000  279 Jul 10 19:39 runtest
-rwxrwxr-x.  1 1000 1000  283 Jul 10 19:39 runtest-cluster
-rwxrwxr-x.  1 1000 1000 1.6K Jul 10 19:39 runtest-moduleapi
-rwxrwxr-x.  1 1000 1000  285 Jul 10 19:39 runtest-sentinel
-rw-rw-r--.  1 1000 1000 1.7K Jul 10 19:39 SECURITY.md
-rw-rw-r--.  1 1000 1000  14K Jul 10 19:39 sentinel.conf
drwxrwxr-x.  4 1000 1000 8.0K Jul 10 19:39 src
drwxrwxr-x. 11 1000 1000  199 Jul 10 19:39 tests
-rw-rw-r--.  1 1000 1000 3.0K Jul 10 19:39 TLS.md
drwxrwxr-x.  8 1000 1000 4.0K Jul 10 19:39 utils

编译安装

[root@redis redis-stable]# make

。。。
Hint: It's a good idea to run 'make test' ;)

make[1]: Leaving directory `/root/redis-stable/src'


[root@redis redis-stable]# make install
cd src && make install
which: no python3 in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
make[1]: Entering directory `/root/redis-stable/src'
    CC Makefile.dep
make[1]: Leaving directory `/root/redis-stable/src'
which: no python3 in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
make[1]: Entering directory `/root/redis-stable/src'

Hint: It's a good idea to run 'make test' ;)

    INSTALL redis-server
    INSTALL redis-benchmark
    INSTALL redis-cli
make[1]: Leaving directory `/root/redis-stable/src'


默认安装目录/usr/local/bin

[root@redis redis-stable]# ll -h /usr/local/bin/
total 22M
-rwxr-xr-x. 1 root root 5.0M Jul 13 17:30 redis-benchmark
lrwxrwxrwx. 1 root root   12 Jul 13 17:30 redis-check-aof -> redis-server
lrwxrwxrwx. 1 root root   12 Jul 13 17:30 redis-check-rdb -> redis-server
-rwxr-xr-x. 1 root root 5.2M Jul 13 17:30 redis-cli
lrwxrwxrwx. 1 root root   12 Jul 13 17:30 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root  11M Jul 13 17:30 redis-server

修改配置文件

[root@redis redis-stable]# vim /redis/redis.conf 
daemonize yes
protected-mode no
#bind 127.0.0.1 -::1
requirepass oracle

添加环境变量

[root@redis ~]# vim .bash_profile 
export PATH=/usr/local/bin:$PATH
[root@redis ~]# source .bash_profile 

启动服务

[root@redis ~]# redis-server /redis/redis.conf 

[root@redis ~]# ps -ef |grep redis
root       6001      1  0 18:20 ?        00:00:00 redis-server *:6379
root       6007   1417  0 18:20 pts/0    00:00:00 grep --color=auto redis


[root@redis ~]# redis-server --help
Usage: ./redis-server [/path/to/redis.conf] [options] [-]
       ./redis-server - (read config from stdin)
       ./redis-server -v or --version
       ./redis-server -h or --help
       ./redis-server --test-memory <megabytes>
       ./redis-server --check-system

Examples:
       ./redis-server (run the server with default conf)
       echo 'maxmemory 128mb' | ./redis-server -
       ./redis-server /etc/redis/6379.conf
       ./redis-server --port 7777
       ./redis-server --port 7777 --replicaof 127.0.0.1 8888
       ./redis-server /etc/myredis.conf --loglevel verbose -
       ./redis-server /etc/myredis.conf --loglevel verbose

Sentinel mode:
       ./redis-server /etc/sentinel.conf --sentinel
       
 

查看版本

[root@redis ~]# redis-server --version
Redis server v=7.0.12 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=3c6460644b75d16c

连接redis

[root@redis ~]# redis-cli -hlocalhost -p6379 --pass
Unrecognized option or bad number of args for: '-hlocalhost'
[root@redis ~]# redis-cli -h localhost -p 6379 --pass
Unrecognized option or bad number of args for: '--pass'
[root@redis ~]# redis-cli -h localhost -p 6379 -a
Unrecognized option or bad number of args for: '-a'


[root@redis ~]# redis-cli -h localhost -p 6379 -a oracle
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
localhost:6379> 


[root@redis ~]# redis-cli -h localhost -p 6379 --pass oracle
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
localhost:6379> 


[root@redis ~]# ps -ef |grep redis |grep -v grep
root       6001      1  0 18:20 ?        00:00:00 redis-server *:6379
root       6018   1417  0 18:27 pts/0    00:00:00 redis-cli -h localhost -p 6379 --pass oracle


localhost:6379> ping
PONG
localhost:6379> ping
PONG

localhost:6379> set key helloworld
OK
localhost:6379> get key
"helloworld"

关闭服务

1、在客户端里面关闭
localhost:6379> shutdown
not connected> 
not connected> exit
[root@redis ~]# ps -ef |grep redis | grep -v grep


2、单实例关闭
redis-cli -a oracle shutdown
[root@redis ~]# redis-server /redis/redis.conf 
[root@redis ~]# ps -ef |grep redis | grep -v grep
root       6067      1  0 18:43 ?        00:00:00 redis-server *:6379


3、多实例关闭
redis-cli -p 6379,6378,6377 shutdown
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Redis是一个开源的、使用C语言编写的高性能键值对存储数据库,其源码注释主要包含了对Redis的各个组件、模块、函数等的详细说明,方便开发者理解和使用Redis。 在Redis 7.0源码注释中,包含了对Redis的基本结构、数据类型、内存管理、数据库操作、网络通信等方面的注释。 在基本结构方面,源码注释详细介绍了Redis的整体架构和模块之间的关系,如服务器结构、客户端结构、数据库结构等。这些注释帮助开发者了解Redis的组成部分,有助于对Redis进行二次开发和定制化。 在数据类型方面,可以找到对Redis支持的各种数据类型(如字符串、列表、哈希表、有序集合等)的源码注释。这些注释详细说明了数据类型的实现原理和内部数据结构,以及对应操作的时间复杂度等信息,有助于开发者在使用Redis时了解其内部实现机制和使用方法。 在内存管理方面,Redis源码注释解释了Redis对内存的分配和释放,并介绍了部分内存管理的原理和策略,如对象引用计数、内存回收等。这些注释可以帮助开发者理解Redis在内存管理方面的设计和优化。 在数据库操作方面,Redis源码注释提供了对数据库的增删改查操作的详细注释,包括对集合操作、哈希表操作、有序集合操作等。这些注释可以帮助开发者了解Redis对数据的存储和操作方式,以及相应的数据结构和算法。 在网络通信方面,Redis源码注释包含了对网络连接、通信协议、命令解析等的详细说明。这些注释帮助开发者了解Redis与客户端之间的通信机制,以及如何解析和处理客户端发送的命令。 总之,Redis 7.0源码注释提供了对Redis各个方面的详细解释,帮助开发者理解Redis的内部结构、实现原理和使用方式,是开发者学习和使用Redis的重要参考资料。 ### 回答2: Redis 7.0是一款开源的、高性能的、支持多种数据结构的内存数据库。在Redis 7.0源码注释中,涉及了许多关键的实现细节、数据结构定义和算法逻辑。 首先,Redis 7.0源码注释提供了对各个函数和模块的详细解释。这些注释能够帮助开发人员更好地理解代码的功能和实现方式,提供了方便的参考和指导。例如,对于关键数据结构如字符串、哈希表、链表等的定义和使用都有详细的注释说明,帮助开发人员了解其内部实现原理和使用方式。 其次,Redis 7.0源码注释还包含了算法的解释和优化思路。对于一些关键算法,如缓存淘汰算法、订阅与发布算法等,注释中详细解释了其实现原理和性能优化的思路。这对于开发人员来说是非常有价值的,可以帮助他们更好地理解和改进Redis的性能和功能。 此外,Redis 7.0源码注释还包括了对一些重要模块和功能的解释。例如,对于多线程支持的相关代码和模块,注释中详细解释了其原理和使用方式,以及相关的并发控制策略。这可以帮助开发人员更好地理解和使用Redis的多线程功能,提高系统的并发处理能力。 总而言之,Redis 7.0源码注释对于开发人员来说是一份非常宝贵的文档。它提供了对代码的详细解释和说明,包括数据结构定义、算法实现和模块功能等方面。这些注释可以帮助开发人员更加深入地理解和使用Redis,并为他们在解决问题和优化性能时提供有价值的参考和指导。 ### 回答3: Redis 7.0Redis 数据库的一个版本,以下是对该版本源码注释的简要解释: Redis 7.0源码注释主要用于解释 Redis 数据库中的各个函数、数据结构和算法的功能和实现原理。 在 Redis 7.0源码中,注释被用来解释函数的输入参数和返回值、函数的作用、关键算法的实现细节以及代码的逻辑结构等等。注释帮助开发者理解和使用源码,对于对 Redis 进行二次开发或者进行排错、优化也起到了重要作用。 源码注释提供了对 Redis 各个模块和功能的清晰解释,例如底层的数据类型实现、线程模型、COW(copy-on-write)策略等等。同时,注释还覆盖了 Redis 7.0 引入的新功能和改进。例如,Redis 7.0 可能引入了新的数据结构或者命令,这些新功能的实现细节可能在注释中有所描述。 此外,Redis 7.0源码注释还可能包含一些重要的注释块,其中包括一些算法和数据结构的详细解释,这有助于开发者深入了解 Redis 内部的运作方式。 需要注意的是,Redis 7.0源码注释是用来帮助开发者理解源码的,因此在实际运行时会被编译器忽略掉。因此,在阅读和使用源码时,我们需要同时参考源码注释和实际代码实现来全面理解 Redis 的工作机制。 总之,Redis 7.0源码注释对于开发者来说是一份重要的参考资料,能够帮助他们理解 Redis 的工作原理和实现方式,从而更好地使用和扩展 Redis 数据库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值