redis高级部分等相关内容-146

1 Redis介绍安装配置

1 安装

#下载
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
#解压
tar -xzf redis-5.0.7.tar.gz
#建立软连接
ln -s redis-5.0.7 redis
cd redis
make&&make install
#在src目录下可以看到
#redis-server--->redis服务器
#redis-cli---》redis命令行客户端
#redis-benchmark---》redis性能测试工具
#redis-check-aof--->aof文件修复工具
#redis-check-rdb---》rdb文件检查工具
#redis-sentinel---》sentinel服务器,哨兵
#redis作者对windows维护不好,window自己有安装包

# 在任意路径执行redis-server 都能运行起redis服务
-把可执行文件加入环境变量
  -用户变量(用户家路径下:.bash_profile)
       -系统变量
   -把可执行文件在usr路径下建立软链接

####卸载redis
# 1、查看redis进程;
   ps aux|grep redis
   # 2、kill掉进程;
   kill 进程id
   # 3、进入到redis目录
   cd /usr/local/
   # 4、删除redis对应的文件
   rm -f /usr/local/redis/bin/redis*
   rm -f /usr/local/bin/redis*
   # 5、删除对应的文件
   rm -rf redis
# 简单启动服务
redis-server
# 动态参数启动
redis-server --port 6380
# 重点:通过配置文件启动
#配置文件启动(6379对应手机按键MERZ,意大利女歌手Alessia Merz的名字)
   #####通过redis-cli连接,输入config get * 可以获得默认配置
   #在redis目录下创建config目录,copy一个redis.conf文件
   #daemonize--》是否是守护进程启动(no|yes)
   #port---》端口号
   #logfile--》redis系统日志
   #dir--》redis工作目录
   bind 0.0.0.0
   daemonize NO
   protected-mode no
   requirepass 123456
# 普通客户端链接
redis-cli -h ip -p port
redis-cli
# 带密码的
   # 方式一
   redis-cli -h 127.0.0.1  -p 6370 -a 123456
   # 方式二
   redis-cli -h 127.0.0.1  -p 6370
   先登陆,再通过auth输入密码
   
# 注意
CONFIG GET *   一百多对建值
CONFIG SET maxmemory 128M  # 设置最大使用的内存
CONFIG set requirepass 123456  # 设置密码
CONFIG REWRITE  # 保存到配置文件

 

2 API的使用

http://liuqingzheng.top/db/Redis%E7%B3%BB%E5%88%97/01-Redis%E7%B3%BB%E5%88%97%E4%B9%8B-API%E7%9A%84%E4%BD%BF%E7%94%A8/

 

3 高级用法

# 慢查询相关
# pipeline与事务
-pipeline每次只能作用在一个Redis的节点上(如果做了集群,就没有pipline了)
   
  -悲观锁和乐观锁
  -redis只能实现乐观锁:https://www.cnblogs.com/liuqingzheng/p/9997092.html
  # 2 模拟乐观锁
       # 在开启事务之前,先watch
       wathc age
       multi
       decr age
       exec

       # 另一台机器
       mutil
       decr age
       exec  # 先执行,上面的执行就会失败(乐观锁,被wathc的事务不会执行成功)
       
       
       
# 发布订阅
#Bitmap位图
# HyperLogLog:极小的空间完成独立数量统计
-pfadd key element  增加(重复了不会增加)
   -pfcount key         统计个数
   -去重,独立用户统计,有错误率
   
# GEO(redis,es)
# 插入
   geoadd cities:locations 116.28 39.55 beijing #把北京地理信息天津到cities:locations中
   geoadd cities:locations 117.12 39.08 tianjin
   geoadd cities:locations 114.29 38.02 shijiazhuang
   geoadd cities:locations 118.01 39.38 tangshan
   geoadd cities:locations 115.29 38.51 baoding
   # 计算北京到天津的距离
   geodist cities:locations beijing tianjin km
# 计算北京方圆150km内的城市
   georadiusbymember cities:locations beijing 150 km

 

4 持久化

rdb方案

# 两种:
-rdb:缓存
   -aof:对数据准确性要求高一些
# rdb:触发方式三种
-手动 save
 
   -手动 bgsave
   
   -配置文件
   配置   seconds   changes
   save   900        1
   save   300        10
   save   60         10000
   
   
# 最佳配置
save 900 1
save 300 10
save 60 10000
dbfilename dump-3306.rdb  #以端口号作为文件名,可能一台机器上很多reids,不会乱
dir /bigdiskpath #保存路径放到一个大硬盘位置目录
stop-writes-on-bgsave-error yes #出现错误停止
rdbcompression yes #压缩
rdbchecksum yes #校验

aof

客户端每写入一条命令,都记录一条日志,放到日志文件中,如果出现宕机,可以将数据完全恢复

# AOF 重写
本质就是把过期的,无用的,重复的,可以优化的命令,来优化
这样可以减少磁盘占用量,加速恢复速度
   
   
# aof的最佳配置
appendonly yes #将该选项设置为yes,打开
appendfilename "appendonly-3306.aof" #文件保存的名字
appendfsync everysec #采用第二种策略
dir /data #存放的路径
no-appendfsync-on-rewrite yes

 

5 主从复制原理与优化

# 手动配置
在6380上执行(去从库配置,配置主库)
# 127.0.0.1 6379主库
# 127.0.0.1 6380 从库
# 在从库上执行,就建立了主从
slaveof 127.0.0.1 6379 #异步
# 取消主从
slaveof no one #取消复制,不会把之前的数据清除


# 配置文件配置
daemonize no
pidfile redis.pid
bind 0.0.0.0
protected-mode no
port 6379
timeout 0
logfile redis.log
dbfilename dump.rdb
dir /data
# 指定主库为10.0.0.101 6379
slaveof 10.0.0.101 6379
# 从库只读
slave-read-only yes

 

原文地址:https://www.cnblogs.com/usherwang/p/14470991.html