
redis单机安装
1.首先我们进入我们的redis压缩包存放位置(之前上传的)
2.执行解压缩,命令:tar -zxvf redis-7.0.4.tar.gz
3.进入到解压后的目录,执行make命令进行编译

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

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

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

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

登录redis
认证:auth username password
