Redis学习笔记
1.Nosql的CAP原理
C:Consistency 强一致性
A: Availability 可用性
P: Partition tolerance 分区容错性
三选二
CP:Redis
CA:传统Oracle
2.Redis (REmote dictionary Server 远程字典服务)
3.linux系统下安装Redis
4.Redis命令
A. redis-server /XXX/redis.conf 启动redis
B. redis-cli -p 端口号 跳转到redis命令界面
C. config get dir 得到redis的启动路径。日志也打印在这里
D. shutdown 停止redis
E. config set requirepass “123456” 设置redis密码 如果密码设空,则不需 要密码
F. auth 123456 验证密码后,才能进行其他操作
G.
a:select 6 :切换到第六个redis数据库中(Redis默认16个库,在配置文件中体现)
b:dbsize :查看当前key的数量
c: flushdb :删除当前库的内容
d:flushall :删除所有库的内容
e: exists key:判断是否存在key对应的键值对
f:move keyName 2 : 从当前库移动key对应的键值对到3号库中
g:expire key 10 :为给定的key设置过期时间 单位秒
h:ttl key 查看还有多少秒过期,-1:表示永不过期,-2:已过期 其他:剩余时间
(time to live)
i:type key 查看key对应的数据类型
g:ltrim key 2 3:截取key对应键值下标为2-3的值再赋值给key
Redis配置文件
1.tcp-keepalive: 0 空闲多久之后,自动关闭时间 0:不关闭
描述:类似鼠标很久不动。qq图标变成离开状态
2.loglevel :notice 日志级别
3.maxmemory-policy:缓存策略。比如最近最少使用。。等
描述:lru:最近最少使用策略
5.Reids持久化 rdb + aof
1.rdb 机制: 生成dump.rdb备份数据文件
save 900 1 :每900s内如果redis 有一个更新操作,则写一次文件进行备份,可 连续写多个定义
是什么:
RDB总结
6.AOF
AOF机制:appendonly.aof
重写(Rewrite)机制:
优劣势分析:
Redis的事务机制:
启动事务:MULTI
执行:EXEC
放弃本次事务:DISCARD
MULTI:进行监控数据,如果在监控之后,事务执行提交前数据被人改了。则事务提交失败
一旦执行了EXEC之后。之前的所有WATCH都会被取消
乐观锁:不进行锁表。每次更新时判断自己从数据库取到的版本和数据库当前的版本是否
相同,如果相同则更新,否则提交失败。
发布、订阅消息
publish subscribe 订阅时,支持正则表达式订阅多个
Redis的主从复制(Master/slave)
从库配置:
info replication 查看信息
slave IP 端口号 :从机连接主机命令
主机没有关闭之前。从机无法进行写操作
主机关闭再开启后。从机会自动连接到主机上。
主备切换分类
第一种:A为主机,B、C为他的从机
第二种:A为主机,从机为B,B的从机为C A -> B -> C
第二种情况之A主机挂掉之后,B继承A的任务。翻身成主机 命令:slaveof no one
主从复制原理:
注意点:如果在java代码中,主机存入后,马上从 丛机取出,无法取出,因为程序运行太快,丛机还没来得及复制。
Jedis配置连接池 JedisPoolConfig
连接池配置:
1.关闭连接:
2.得到实例(懒汉模式)
3.连接池使用实例
问:
Reids 是否支持事务: 部分支持事物、
描述:如果是加入队列时就抛出的错误。Redis 会认为是比较严重的错误,事务中所有操作全部失效,如果是运行时抛出的错误,则会有一部分执行成功(弱一致性)