redis单机安装

redis单机安装



1.首先我们进入我们的redis压缩包存放位置(之前上传的)

2.执行解压缩,命令:tar -zxvf redis-7.0.4.tar.gz

3.进入到解压后的目录,执行make命令进行编译

笔记插图(第 1 页)

1
  #编译
2  make
3  #make test 可以不用执行
4  #执行位置安装
5  make PREFIX=/usr/local/redis/ install

安装完成后:

笔记插图(第 1 页)

1

文件介绍:

2  redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
3  redis-check-aof:修复有问题的AOF文件
4  redis-check-dump:修复有问题的dump.rdb文件
5  redis-sentinel:Redis集群使用
6  redis-server:Redis服务器启动命令
7  redis-cli:客户端,操作入口

4、复制配置文件redis.conf

笔记插图(第 1 页)

5、Redis基本配置

1
  修改redis为后台启动 为yes启动不用&符号
2  daemonize  将no改成yes
3
4  开放IP访问地址
5  bind 127.0.0.1修改为 0.0.0.0
6
7  关闭保护模式
8  protected-mode 修改未no
9
10  设置访问密码
11  requirepass abc123!@#
12

1

简单学习一下重要的参数

2  1. bind
3  指定Redis是否允许外部访问. 如果是本机(IPV4)
4  可以bingd 127.0.0.1, 如果是外部, 需要bind 0.0.0.0
5  2. protected-mode
6  生产环境需要关闭, 设置为 no
7  保护模式好像性能不是特别好.
8  3. port
9  不解释,指定端口.
10  4. tcp-backlog
11  TCP的半连接队列和全连接长度.
12  半连接队列的大小与用户 listen 传入的 backlog、net.core.somaxconn
13  net.core.somaxconn 都有关系,准确的计算规则见上面的源码分析
14  在系统参数不修改的情形,盲目调大 listen 的 backlog 对最终半连接队列的大小不会有影响。
15  在 listen 的 backlog 不变的情况下,盲目调大 somaxconn 和 max_syn_backlog 对最终半连接队列的大

小不会有影响

16  全连接队列的大小是用户 listen 传入的 backlog 与 net.core.somaxconn 的较小值
17  From:https://blog.csdn.net/mingtiannihaoabc/article/details/122276910
18  5. timeout
19  连接客户端的默认超时时间. 默认值是0 就是不超时
20  如果很多客户端经常无效的话,可以设置一定的时间,避免过多的连接
21  6. tcp-keepalive
22  在linux系统中,客户端发送的最后一个数据包与
23  redis发送的第一个保活探测报文之间的时间间隔。单位是秒。
24  7. daemonize no
25  daemonize 设置yes或者no区别
26
27  daemonize:yes:redis采用的是单进程多线程的模式。当redis.conf中选项daemonize设置成yes时,代表开

启守护进程模式。在该模式下,

28                redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时
   redis将一直运行,除非手动kill该进程。
29  daemonize:no: 当daemonize选项设置成no时,当前界面将进入redis的命令行界面,exit强制退出或者关闭
   连接工具(putty,xshell等)都会导致redis进程退出。
30
31  8. pidfile /var/run/redis_6379.pid
32  不同端口的建议进行修改.
33  9. loglevel notice  logfile ""
34  两个参数协同生效. 如果没设置logfile 应该会写入到/dev/null中.
35  如果需要调试,可以开启这个参数,但是认为对性能的损耗会很大.
36  10.database
37  数据库的数量. 可以从0 到 15 实现隔离.
38  11.always-show-logo no
39  不解释
40  12.rdbcompression yes
41  rdbchecksum yes
42  dbfilename dump.rdb
43  rdb-del-sync-files no
44  dir ./
45  save 300 10000
46  五分钟内有10000个键值对变化就进行一次dump文件保存
47  并且进行压缩和检查.文件名字是 dump.rdb
48  文件目录是当前目录.
49  13.复制的参数本次不学习了
50  14.lazy相关的命令
51  lazyfree-lazy-expire no
52  lazyfree-lazy-server-del no
53  lazyfree-lazy-user-del no
54  lazyfree-lazy-user-flush no
55  redis 删除数据是分为两个步骤的:
56  从字典表中删除数据 和 释放数据占用内存。
57  lazy free 不是默认开启的,此外,对于不同场景存在对应的配置项,
58  我们需要分别开启对应的配置项才能在对应的场景下开启惰性删除,
59  惰性删除可以将内存释放动作放到后台线程中执行,不会阻塞主线程。
60  15.oom-score-adj
61  之前总结过 设置分支可以避免内存紧张是被OOM掉.
62  16.  disable-thp  yes
63  关闭透明大页
64  17.  appendonly no
65  appendfilename "appendonly.aof"
66  appenddirname "appendonlydir"
67  appendfsync everysec
68  除去rdb之外第二种持久化方式
69  需要四个个命令协同生效.
70  18.  slowlog-log-slower-than 10000
71  slowlog-max-len 128
72  可以查看命令超过10000微秒的slowlog
73  slowlog的最大长度是 128
74  19.  hz 10 dynamic-hz yes
75  如果是进行lazy删除时, 每秒钟扫描数据库的频率.
76  20.  jemalloc-bg-thread yes
77  是否再background的线程里面使用jemalloc
78  21.  ignore-warnings ARM64-COW-BUG
79  飞腾和鲲鹏服务器需要取消注释
80  如果Redis启动会报错.
81
82
83  第三部分 Redis的内存设置信息
84  From https://www.cnblogs.com/zgxblog/p/14198543.html
85  作为内存数据库,为了防止redis占用过多的内存对其他的应用程序造成影响,
86  可以在redis.conf文件中通过设置maxmemory选项对redis所能够使用的最大内存做限制,
87  并通过maxmemory_policy内存淘汰策略对redis占用内存超过maxmemory之后的行为做限制。
88
89  设置方法:
90  config get maxmemory
91  config set maxmemory 100MB
92  另外一种方法修改配置文件:
93  maxmemory 100MB
94
95  Redis内存中key的策略
96  当 Redis 内存使用达到 maxmemory 时,
97  需要选择设置好的 maxmemory-policy 进行对数据进行淘汰机制。
98  1.volatile-lru(least recently used):
99  最近最少使用算法,从设置了过期时间的键key中选择空转时间最长的键值对清除掉;
100  2.volatile-lfu(least frequently used):
101  最近最不经常使用算法,从设置了过期时间的键中选择某段时间之内使用频次最小的键值对清除掉;
102  3.volatile-ttl:
103  从设置了过期时间的键中选择过期时间最早的键值对清除;
104  4.volatile-random:
105  从设置了过期时间的键中,随机选择键进行清除;
106  5.allkeys-lru:
107  最近最少使用算法,从所有的键中选择空转时间最长的键值对清除;
108  6.allkeys-lfu:
109  最近最不经常使用算法,从所有的键中选择某段时间之内使用频次最少的键值对清除;
110  7.allkeys-random:
111  所有的键中,随机选择键进行删除;
112  8.noeviction:
113  不做任何的清理工作,在redis的内存超过限制之后,所有的写入操作都会返回错误;
114  但是读操作都能正常的进行; 注意这个是Redis的默认值.
115
116  前缀为volatile-和allkeys-的区别在于二者选择要清除的键时的字典不同,
117  volatile-前缀的策略代表从redisDb中的expire字典中选择键进行清除;
118  allkeys-开头的策略代表从dict字典中选择键进行清除。
119
120  第四部分 关于BigKeys不一定正确的理解
121  Redis的key的value一定不要太大.
122  如果客户端要从服务器端获取Redis的相关键值对信息
123  使用Get操作时, 从内存里面发送到网卡需要耗费大量昂贵的内存操作.
124  并且也会占用很多网络带宽的资源
125  100MB的key 会占用服务器1秒以上的网络栈时间(预计为2.5秒)
126  会引起其他访问者的大量时间延迟.
127  所以情况下一定要控制redis 的键值对的大小. 不然会导致严重的问题.
128
129  最近发现Redis的监控的机器的内存流量特别高.
130  公司内部又使用了缓存和锁和session的分布式处理
131  这一块会导致巨量的网络延迟和损耗
132  还是需要进行细致处理的.

关闭redis(两种方式)

第一种.执行shutdown

笔记插图(第 5 页)

第二种.先找到进程号:ps -ef | grep redis

kill -9 9468

笔记插图(第 5 页)

登录redis

认证:auth username password

笔记插图(第 6 页)