这几天学习Redis的笔记,喜欢像Redis这样简单、强悍、精炼的开源软件,希望以后在工作中能用的上,还是那句话“卖技不卖身,技不压身”~~
相关网站:https://redis.io/
http://www.redis.cn/
http://redisdoc.com/ 命令参考
安装redis:
1:下载/redis-5.0.2.tar.gz
2:tar -xvf /redis-5.0.2.tar.gz
3:需要先有gcc,查看版本:gcc -v
4:make
5:make install
Server启动命令:redis-server /root/myredis/redis.conf
Client连接命令:redis-cli -p 6379
Select 切换数据库:
默认:databases 16
使用select 【index0~15】选择不用库
DBSIZE查看当前数据库的key的数量
罗列所有的key: keys *
Flushdb:清理数据库
FLUSHALL:通杀全部库
Redis五大数据类型:
字符串(String):二进制安全, 一个redis中字符串value最多可以是512M
列表(List):Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
集合(Set):Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
哈希(Hash):键值对, 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
有序集合(Zset): 有序的set,在集合的基础上进行延伸有序,其K是sring V是一个键值对,这个键值对是分数score: V,并默认从小到大排序
把k3移到到2号库:
move k3 2
select 2
keys * —能看到k3
exists key 判断某个key是否存在
expire key 秒钟
ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期
type key 查看key是什么类型
redis.conf配置:
INCLUDES : 可以包括其他.conf文件
tcp-backlog:tcp链接队列大小
loglevel:日志级别debug、verbose、notice、warning
获取redis的密码(默认为空):config get requirepass
获取redis的路径(默认为/usr/local/bin):config get dir
redis的持久化:
RDB ---->/usr/local/bin/dump.rdb 使用redis-check-rdb 修正文件
save
save 900 1
save 300 10
save 60 10000
AOF 开启:appendonly yes
所有写操作都保存在 appendfilename “appendonly.aof” 中,默认路径/usr/local/bin/
使用redis-check-aof 可以修正appendonly.aof :redis-check-aof --fix appendonly.aof
同步策略appendfsync:Always-总是同步,磁盘影响速度压力大,速度比较慢,性能比RDB差点
everysec -每秒 (默认)
no -不同步
总结:RDB和AOF可以共存;RDB丢失数据多,恢复快;AOF数据文件大,恢复慢;
同时开启两种持久化方式;redis优先载入AOF文件来恢复原始数据;RDB作为一个万一的备份
如果不用AOF,可以用Maste-Slave Replication实现高可用性也可以
Redis事务: *
DISCARD *
EXEC *
MULTI *
UNWATCH *
WATCH
MULTI...EXEC/DISCARD 事务命令
watch ... MULTI......EXEC/DISCARD 保证在修改期间没有被其他人修改
watch 失败后,执行unwatch取消所有被监控的KEY,再watch进行修改
发布和订阅机制:
*
PSUBSCRIBE
*
PUBLISH
*
PUBSUB
*
PUNSUBSCRIBE
*
SUBSCRIBE
*
UNSUBSCRIBE
Redis的主从复制(master/slaver):master写 slaver读 查看主从:info replication
1:配置从库,不配置主库
2:从库配置:slaveof 主库IP 主库端口
3:修改配置文件
SLAVEOF no one 从变主
问题:master_link_status:down 主从复制报错
在master的redis.conf的配置中把bind 127.0.0.1 改完bind 0.0.0.0 解决Error condition on socket for SYNC: Connection refused
主机连接状态为:master_link_status:up
哨兵模式:sentinel.conf 中配置:sentinel monitor host6379 127.0.0.1 6379 1
启动哨兵:redis-sentinel sentinel.conf
主动宕机后哨兵自动投票选出一台作为master;原master回来后成为slaver了
JedisPool的网站:https://blog.csdn.net/u013985664/article/details/79026589