Redis单机部署

2021/03/12

Redis单机部署

参考资料

  • 官网地址:https://redis.io
  • 下载地址:https://redis.io/download
  • 文档地址:

1 Linux环境安装

redis 5.0.3 安装部署:https://www.codetd.com/article/14934854

1.下载:
访问 https://redis.io/download  到官网进行下载  
或者 wget https://download.redis.io/releases/redis-3.x.x.tar.gz 

2.解压
##/opt/redis为举例的安装目录.
mkdir /opt/redis
tar ‐zxvf redis‐3.x.x.tar.gz ‐C /opt/redis

3.编译
# 安装依赖
yum install gcc-c++
#切入目录
cd /opt/redis/redis‐3.x.x 
#编译
make 
#安装
make install
// 备注:// make test you need tcl8.5 or newer   需要安装tcl
下载tcl8.6.0: 
进入unix, 
执行./configure,
生成Makefile, 
执行make
执行make install
安装tcl后, make test 报错, 修改tests/integration/replication-psync.tcl文件,修改after后的100->500

4.移动可执行文件至bin目录
mkdir /opt/redis/redis‐3.x.x/bin
回车
mv redis‐trib.rb redis‐server redis‐sentinel redis‐cli redis‐check‐dump redis‐check‐aof redis‐
benchmark mkreleasehdr.sh /opt/redis/redis‐3.x.x/bin
回车

5.移动配置文件到bin目录
mkdir /opt/redis/redis‐3.x.x/bin
mv /opt/redis/redis‐3.x.x/redis.conf /opt/redis/redis‐3.x.x/bin

6.修改配置文件
vim /opt/redis/redis‐3.x.x/bin/redis.conf
/requirepass  #搜索密码, 释放注释, 修改密码
bind 127.0.0.1   #注释掉
daemonize yes  #守护进程:前台运行、后台运行
dir ./  修改为 dir/usr/local/reids/work  #持久化目录

7.启动服务
cd /opt/redis/redis‐3.x.x/bin
./redis‐server redis.conf

8.测试启动是否成功:如果运行以下命令后出现:Could not connect to Redis at xxxx: Connection refused.则说明启动不成功;如果进入了redis交互页面,则说明启动成功了。
cd /opt/redis/redis‐3.x.x/bin
./redis‐cli ‐p 端口号 ‐a requirepass设置的密码  //redis-cli -h 127.0.0.1 -p 6379 -a 123456

9.设置开机自启动
进入redis/utils目录
复制文件:cp redis_int_script /ect/int.d/
执行 vim redis_int_script 添加
#chkconfig: 22345 10 90
#description: Start and Stop redis
执行 chkconfig redis_int_script on 注册

2 windows环境安装

Redis项目不正式支持Windows。但是,微软开发并维护了针对Win64的Windows版本。
下载地址:https://github.com/tporadowski/redis/releases。
Windows版本下载地址:https://github.com/MicrosoftArchive/redis/releases
安装:https://www.cnblogs.com/skmobi/p/11696620.html

1.下载

2.解压

3.启动:打开cmd命令进入redis目录,
执行  E:\redis>redis-server.exe redis.windows.conf

4.链接:启动后窗口不要关,新开一个cmd窗口
执行 E:\redis>redis-cli ==>默认连接本机127.0.0.1 端口号 6379,连接成功。

5、将Redis 加入 Windows 服务,执行
redis-server --service-install redis.windows.conf
提示:Redis successfully installed as a service.表示加入服务成功!
如果 Redis 设置了密码,加入服务时会提示: Granting read/write access to 'NT AUTHORITY\NetworkService' on: "E:\redis" "E:\redis\"

可以服务列表redis的属性里加启动参数:-a 123456

3 reids配置详解

==基本配置
daemonize no 是否以后台进程启动
databases 16 创建database的数量(默认选中的是database 0)

save 900 1    #刷新快照到硬盘中,必须满足两者要求才会触发,即900秒之后至少1个关键字发生变化。
save 300 10  #必须是300秒之后至少10个关键字发生变化。
save 60 10000 #必须是60秒之后至少10000个关键字发生变化。
stop-writes-on-bgsave-error yes    #后台存储错误停止写。
rdbcompression yes    #使用LZF压缩rdb文件。
rdbchecksum yes    #存储和加载rdb文件时校验。
dbfilename dump.rdb    #设置rdb文件名。
dir ./    #设置工作目录,rdb文件会写入该目录。

==主从配置
slaveof <masterip> <masterport> 设为某台机器的从服务器
masterauth <master-password>   连接主服务器的密码
slave-serve-stale-data yes  # 当主从断开或正在复制中,从服务器是否应答
slave-read-only yes #从服务器只读
repl-ping-slave-period 10 #从ping主的时间间隔,秒为单位
repl-timeout 60 #主从超时时间(超时认为断线了),要比period大
slave-priority 100    #如果master不能再正常工作,那么会在多个slave中,选择优先值最小的一个slave提升为master,优先值为0表示不能提升为master。

repl-disable-tcp-nodelay no #主端是否合并数据,大块发送给slave
slave-priority 100 从服务器的优先级,当主服挂了,会自动挑slave priority最小的为主服

===安全
requirepass foobared # 需要密码
rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 #如果公共环境,可以重命名部分敏感命令 如config

===限制
maxclients 10000 #最大连接数
maxmemory <bytes> #最大使用内存

maxmemory-policy volatile-lru #内存到极限后的处理
volatile-lru -> LRU算法删除过期key
allkeys-lru -> LRU算法删除key(不区分过不过期)
volatile-random -> 随机删除过期key
allkeys-random -> 随机删除key(不区分过不过期)
volatile-ttl -> 删除快过期的key
noeviction -> 不删除,返回错误信息

#解释 LRU ttl都是近似算法,可以选N个,再比较最适宜T踢出的数据
maxmemory-samples 3

====日志模式
appendonly no #是否仅要日志
appendfsync no # 系统缓冲,统一写,速度快
appendfsync always # 系统不缓冲,直接写,慢,丢失数据少
appendfsync everysec #折衷,每秒写1次

no-appendfsync-on-rewrite no #为yes,则其他线程的数据放内存里,合并写入(速度快,容易丢失的多)
auto-AOF-rewrite-percentage 100 当前aof文件是上次重写是大N%时重写
auto-AOF-rewrite-min-size 64mb aof重写至少要达到的大小

====慢查询
slowlog-log-slower-than 10000 #记录响应时间大于10000微秒的慢查询
slowlog-max-len 128   # 最多记录128条

4 Redis命令行客户端redis-cli基本使用

redis-cli :进入到redis客户端
auth pwd :输入密码  
set key value :设置缓存
get key :获得缓存
del key :删除缓存
exists key:判断某个key是否存在
redis-cli -a password ping :查看是否存活
keys *:查看所有的key (不建议在生产上使用,有性能影响)
type key:key的类型
SETNX:是「SET if Not eXists」的缩写,就是只有key不存在时才设置值,可以防止覆盖数据
    - 用途:用来实现分布式锁

禁用:flushall 清空整个 Redis 服务器的数据(删除所有数据库的所有 key )  
注意:如果不小心运行了flushall,立即shutdown nosave,关闭服务器,然后手工编辑aof文件,去掉文件中的flushall相关行,然后开启服务器,就可以倒回原来是数据。如果flushall之后,系统恰好bgwriteaof了,那么aof就清空了,数据丢失。    
select index:切换数据库,总共默认16个
save:保存rdb快照
lastsave:上次保存时间
shutdown [save/nosave]  
showlog:显示慢查询  
quit #退出连接 

查询或者删除前缀为demo:user:的key:https://developer.aliyun.com/ask/497166
方式1:keys demo:user:*  //查询所有含此前缀的key
方式2:scan 0 match demo:user:*  100  //通过游标一批批查询,防止key数量过大

问题记录

Post Directory

扫码关注公众号:暂无公众号
发送 290992
即可立即永久解锁本站全部文章