redis简单操作

下载redis

yum install -y wget && wget https://download.redis.io/redis-stable.tar.gz

解压

tar -xzvf redis-stable.tar.gz

安装

cd /redis-stable
make install

报错,未找到cc
运行:yum install gcc
报错:jemalloc/jemalloc.h:没有那个文件或目录
上次运行make install 残余文件导致,清除命令:make distclean

查看redis配置文件

cat redis.conf | grep -v "#" | grep -v "^$"

grep -v “#” 去除注释
grep -v “^$” 去除空白行

RDB保存数据

save

每执行一次save,redis数据就保存一次

手动启动后台保存操作

bgsave

配置文件内容说明

#端口号
port 6379
#是否以守护进程的方式启动redis yes 是 no 否
daemonize yes
#日记文件名
logfile "6379.log"
#日记文件存放位置
dir "/data/redis/log"
#设置RDB方式保存数据时的文件名
dbfilename dump-6379.rdb
#RDB保存数据时是否进行压缩 yes 是 no 否
rdbcompression yes
#RDB恢复数据时是否检测文件是否完好 yes 是 no 否
rdbchecksum yes
#开始aof方式保存数据
appendonly yes
#aof 保存频率 always 每次 everysec 每秒 no 系统自定义
appendfsync everysec
#aof保存文件名
appendfilename appendonly-6379.aof

aof手动重写

bgrewriteaof

aof自动重写

# 到达多大时重写M
auto-aof-rewrite-min-size size
#(当前大小 - 基础大小)/基础大小 > percent 时,重写
auto-aof-rewrite-percentage percent

redis事务基本操作
开启事务

mulit

执行事务

exec

取消事务

discard

在这里插入图片描述
redis事务–锁
加锁

watch key [key ...]

可以监控一个,也可以监控多个

取消锁

unwatch

案例
在这里插入图片描述
如果监控的 name , name2 值发生改变,下面的事务multi 将执行不成功

分布式锁

setnx

案例
在这里插入图片描述
上锁,操作完成后,需要解锁,直接用 del 删除

防止锁死,设置有效时长

expire lock-key second
pexpire lock-key millisecond

在这里插入图片描述

二进制位基本操作:设值和取值

#设置
setbit key 位置 值
#取值
getbit key 位置

案例
在这里插入图片描述
至于为啥没设置位置1的值,它却有值,应该是没清redis的数据,name 这个key 重复用了

bitmaps 类型的扩展操作

bitop op destkey key1 [key2 ...]

op 可以为

  • and:交
  • or:并
  • not:非
  • xor:异或

统计指定key中1的数量

bitcount key [start end]

开始到结束位置 1 的数量 ,不填表示全部

HyperLogLog类型
记录不同值的个数,只记个数,相同的值会覆盖掉
基本操作

#添加
pfadd key value
#统计
pfcount key [key ...]
#合并
pfmerge destkey key [key ...]

GEO地理位置的计算

#添加
geoadd key longitude latitude member [longitude latitude member ...]
#获取
geopos key member [member ...]
#比较两点间的距离
geodist key member1 member2 [M|KM|FT|MI]

在这里插入图片描述

#统计指定经纬度,多少距离内所有的点
georadius  key longitude latitude radius M|KM|FT|MI [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC]
#统计指定点多少距离内所有的点
georadiusbymember key member radius M|KM|FT|MI [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC]

在这里插入图片描述
在这里插入图片描述
主从复制
新建两个centos7 下载并安装好redis 主 master 从slave
主redis(即:master)配置文件里设置连接密码:

requirepass password

从redis (即:slave)配置文件里面设置连接密码

masterauth password

开放服务器6379端口号
查看是否开放

firewall-cmd --zone=public --query-port=6379/tcp

no 表示关闭 yes 表示开放

添加端口

firewall-cmd --zone=public --add-port=6379/tcp --permanent

success 表示添加成功

重启防火墙

firewall-cmd --reload

再次查看端口是否开放

从redis绑定主redis

slaveof host port

主redis 添加值,如 :set name 123
从redis获取值:get name
主redis再修改name值 ,如:set name abc
从redis再获取name值,如果前后两次都能对上,说明主从连接上了

解绑
从redis

slaveof no one

复制缓冲区大小设置

repl-backlog-size 1mb

两倍的master到slave重连时长再乘每秒产生写命令数据的总量
设置超时时间

repl-timeout 秒

设置master ping 指令发送的频率

repl-ping-slave-period

暂时屏蔽程序对slave的数据访问

slave-serve-stale-data yes|no

从库slave只读不写配置

slave-read-only yes|no

集群
在redis.conf里面配置cluster

#设置加入cluster,成为其中的节点
cluster-enabled yes|no
#cluster配置文件名,该文件属于自动生成,仅用于快速查找文件并查询文件内容
cluster-config-file filename
#节点服务响应超时时间,用于判定该节点是否下线或切换为从节点
cluster-node-timeout milliseconds
#master连接的slave最小数量
cluster-migration-barrier <count>

启动redis时,需要在后台加 -c ,不然只能在区间对应的redis服务节点里面操作

redis-cli -c -p 端口号

使用ruby方式启动cluster集群

#查看ruby版本
ruby -v
#查看gem版本
gem -v
#启动cluster集群,在redis 的 src 目录下
./redis-trib.rb create --replicas 1 ip:端口 ip:端口 ip:端口 ip:端口 ip:端口 ip:端口

–replicas 1 代理一个master 连一个slave ,2 代理一个master 连2 个slave
前面的是master ,后面的是slave

cluster节点操作命令

#查看集群节点信息
cluster nodes
#进入一个从节点,切换其主节点
cluster replicate <master-id>
#发现一个新节点,新增主节点
cluster meet ip:port
#忽略一个没有solt的节点
cluster forget <id>
#手动故障转移
cluster failover
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值