一. redis的优点:
采用单进程io复用
支持多种数据类型
支持RDB和AOF持久化可同时开启
可设置键的过期时间 :expire key 过期时间 ttl key:查看剩余时间。
支持事物
记录慢查询
可以做主从集群
二. redis数据类型:
1.字符串(string):一个键对一个值 注:每个键最大存储512MB
set name zcl 创建
get name 查看
2.哈希(hash):一个键值对一个集合 注:存储,读取,修改用户属性
hset nide name "zcl" 创建
hget nide name 查看
3.列表(list):按顺序插入列表中 注:消息队列,最新消息排行等功能
lpush name zcl 创建
lpush name lfy 创建
lrange name 0 1 查看
4.集合(set):添加一个 string 元素到 key 对应的 set 集合中,如果已存在返回0。
sadd runoob zcl 创建 注:利用唯一性,统计访问网站的所有独立ip
sadd runoob lfy 创建
smembres runoob 查看
5.有序集合(zset):根据分数排序键,添加元素到集合,元素在集合中存在则更新对应分数。
zset runoob 0 zcl 创建 注:排行榜 2、带权重的消息队列
zset runoob 0 lfy 创建
ZRANGEBYSCORE runoob 0 1000 查看
三. redis的RDB和AOF持久化:
RDB(全量写入):将内存中的数据存为快照文件dump.rdb定期写入到硬盘中。
RDB持久化分为两种形式阻塞和非阻塞:
save(阻塞):该命令执行时redis主进程会将内存中的数据写入RDB文件,直到文件创建完毕,主进程才开始接收请求,这段期间客户端无法连接redis。
bgsave(非阻塞):该命令执行时redis会fork个子进程来单独将内存中的数据写入RDB文件。同时主进程继续处理请求。不过会造成内存使用率的增加。
优点:数据包含在一个文件有利于备份。
缺点:数据过大fork子进程时可能会丢失几毫秒的数据。
AOF(增量写入):通过日志来记录写命令,重启时会执行AOF文件中的命令进行恢复。
当日志越来越大时,AOF会自动启用重写机制,不断将修改数据写入磁盘中,并创建一个新文件来存储这个过程中有哪些修改命令被执行,来保证安全。
优点:可靠的保证数据安全性
缺点:AOF文件比RDB文件更大恢复效率会相对较低。
四. redis事物:
一组命令要么全执行要么全不执行。
mutli 事物开始
exec 执行事物
discard 取消事物
wahch 对一个或多个键监控,若这个键在事物执行前被修改则事物立即停止。
unwatch 取消wahch对所有键的监控
五. 慢查询
1.超过20秒记录到列表内
config set slowlog-log-slower-than 20000 注:这里的1000毫秒=1秒
2.最多记录1000条,第1001会将第一条代替。
config set slowlog-max-len 1000
3.保存参数
config rewrite
4.查看指定条目:slowlog get 666
1) 1) (integer) 666 慢查询的id号
2) (integer) 1456786500 发生的时间戳
3) (integer) 11615 命令耗时
4) 1) "BGREWRITEAOF" 命令及参数
查看所有条目:slowlog get
查看条目总数:slowlog len
清空条目:slowlog reset
六. 主从复制:
redis默认都是主节点
slaveof ip地址 端口 :指定主节点
slaveof no one:取消