一、Reids介绍
1.key
1.1key 命令
1) keys*:查看
2) setnx:key 不存在时,为 key 设置指定的值。
3) exists key:判断key是否存在
4) move key db:移库
5) expire key :设置过期时间
6) ttl key:查看过期时间,-1永不过期,-2已过期。
7) type key:查看key类型。
8) del :删除已存在的键。不存在的 key 会被忽略。
1.2key命名规范
key的命名规则 定义为
MS-TEN:SESSION_KEY_IN_LOGIN_NAME:fqh
使用:进行分割,这样存入redis的是有层次结构的
二、Reids的五种基本类型:String、Hash、List、Set、ZSet。
1.String
1)设置值:set ,取值:get 删除值:del。set多次会覆盖。
2)setnx(not exist):不存在设置值,并返回1,存在返回0。
3)setex(expired):设置数据过期时间,例:setex color 10 red。10秒后过期,返回nil。
4) setrange替换字符串:
5)strlen[name] 方法:获取字符串长度。
2.Hash类似Java对象
1)设置值:hset,取值:hget,删除hash的field:hdel
2)hexists:是否存在key,存在:1,不存在:0。
3) hkeys:获取key
4) hvals:获取value
5) hgetall:获取key和value
3.List类似Java Queue
1)添加:push
lpush:头部添加,栈,先进后出。
rpush:尾部添加,队列,先进先出。
2)插入:linsert
3)删除:lrem。
4.Set和ZSet set:无序,ZSet:有序。Set通过hashtable实现。
1)sadd:添加
2)srem:删除
5.Redis高级命令
6.Redis安全性
7.Redis主从复制:读写分离。
8.Redis事务
multi:打开事务
exec:执行
discard:取消事务
9.Redis持久化机制
9.1 快照 RDB
1)save 60 10
9.2 append-only file(aof):类似关系数据库中的undo,一般生产环境使用。
10.Redis发布与订阅模式
11.Redis哨兵模式
11.1 原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。
11.2 哨兵的两个作用
-
通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。
-
当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。
三、Jedis(java API)
四、redis的三种集群方式
1.主从复制
优点:读写分离
缺点:主挂了,从不能写入数据。
2.哨兵模式
优点:主从复制+主从切换
缺点:扩容复杂
3.Redis-Cluster集群
优点:主从复制+哨兵模式+分布式存储。数据可以分开存储到不同的节点,支持扩容。