redis

Redis

配置

默认redis安装后开启了protected-mode ,不能远程登录。

常用配置是开启protected,绑定IP和密码,进行远程登录。

vim /etc/redis.conf
bind 172.20.170.228 127.0.0.1  #绑定网卡
requirepass  jinweichang       #链接密码

登录后可查询所有配置参数,

127.0.0.1:6379> config get *
  1) "dbfilename"
  2) "dump.rdb"

127.0.0.1:6379> config get max*
1) "maxmemory"
2) "0"
127.0.0.1:6379> config set maxmemory 300M
OK

配置完,写入文件(永久生效)

127.0.0.1:6379> config rewrite
OK

登录

远程登录

redis-cli -h 172.20.170.228 -p 6379 -a jinweichang

本地登录也需要密码

redis-cli -a jinweichang

也可以登录后在输密码

[root@localhost etc]# redis-cli 
127.0.0.1:6379> AUTH jinweichang 

如果没有密码就回报错,无权限操作

127.0.0.1:6379> select 1
(error) NOAUTH Authentication required.

查询密码

cat /etc/redis.conf |grep 'requirepass'

持久化

RDB

只保留当时的数据,时间点快照。

缺点:会有丢失。

配置:

vim /etc/redis.conf
dir /data/redis       #文件保存路径
dbfilename dump.rdb   #文件名称
save 900 1            #表示900秒内如果有1个更改就save一次
save 300 10           #表示300S内有10次更改就save
save 60 10000
save:前台执行,阻塞redis正常写入,知道持久化完成。
bgsave:后台,开启子线程异步持久化。

AOF

记录所有读写操作命令。

缺点:日志大,还原时间长。

appendonly yes
appendfsync always   #记录所有操作
appendfsync everysec #每秒记录一次
appendfsync no

string(字符串)

string 除字符外,还可存图片

max:512M

CRUD

set 存在就修改,不存在就添加

set key1  hellp

设定key的存在时间(单位:s)

setex key2 10 haha

get 查询

get key1

del 删除

del key1

mset批量写入2个key

mset s1 aa s2 bb

mget批量读取

mget s1 s2

构建主从

配制文件,主库6379,从为6379

port 6380
daemonlize yes
pidfile /data/redis1/redis.pid
loglevel notice
dbfilename dump.rdb
dir /data/redis1
requirepass jinweichang
masterauth jinweichang  #链接主库的密码

开启服务

redis-server /data/redis1/redis.conf &

开启复制

redis-cli -p 6380 -a jinweichang SLAVEOF 172.20.170.229 6379

查看复制状态,一般只查看主库。

redis-cli -p 6379 -a jinweichang info replication

解除复制

redis-cli -p 6380 -a jinweichang SLAVEOF no one

redis-sentinel(哨兵)

1.监控

2.自动选主

3.第三个库指向新的主库

4.应用透明

5.自动处理故障节点

sentinel配置文件

mkdir /data/26380
cd /data/26380
vim sentinel.conf
port 26380
dir /data/26380
sentinel monitor mymaster 127.0.0.1 6379 1  #票数
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster jinweichang

启动sentinel

redis-sentinel sentinel.conf &
## 数据类型
string(字符串) k-v
hash(哈希)字典 use1 name jinwei sex xx
list(列表) city 北京 南京 西安
set 集合
zset有序集合
原文地址:https://www.cnblogs.com/JinweiChang/p/14463225.html