redis
向业务中添加缓存
好处就是快
redis的安装
安装redis需要c语言的编译环境 Yum install gcc-c++
安装步骤
上传解压 3.0
redis 源码目录 编译 make
安装。。。make install PREFIX=/usr/local/redis
nat设置—-
redis的启动和关闭
安装目录下./redis-server 一般不用
后台启动 redis源码包里面 redis.config
编辑里面 daemonize no改成yes
./redis-server redis.conf启动
查看进程 ps aux|grep redis
停止:前台启动 C+c
后台kill 进程id
./redis-cli shutdown
redis的客户端 端口号 默认6379
远程启动 ./redis-cli -h 192…. -p 6379
可以ping
keys * 查看
set set一个key set key1 123
get key1
数据类型:(五种)
String:key value (做重复)
相当于map redis中所有数据都是字符串
命令:get set 命令不区分大小写,key-value区分大小写
incr 自增1 适合生成id
decr 自减1
redis是单线程的,不适合存取大数据
Hash : key-fileds-values(做缓存)
相当于一个key对应一个map,map中还有key-value
适合对key归类 一个key对应一个hash
命令: hset — hset hash1 filed1 1
hset hash1 filed2 2
hset hash1 filed3 3
hset hash2 filed1 a
hget hash1 filed1
没有hincr 有hincrby
hincr hash1 filed1
List:有顺序可以重复
链表,适合于增删插 先进先出叫队列 先进后出是栈
命令: lpush list1 a b c d 从左边添加abcd
lrange list1 0 -1 查看list下面所有内容
rpush list1 1 2 3 4 从右边添加 1 2 3 4
lput list1 弹出就没了
Set 无顺序,不能重复
命令: sadd set1 a b c c d 只有 a b c d
smemebers set1 查看
srem set1 a 删除a
集合运算命令。。。
SortedSet(zset) 有顺序 不能重复
list和set的集合体 适合做排行榜
命令: zadd zset1 2 a 5 b 1 c 6 d
zrange zset1 0 -1 结果 c a b d
zrem zset1 a 删除a
默认顺序从小到大
zrevrange zset1 0 -1 结果 d b c a
zrange zset1 0 -1 withscpres
结果 c 1 a 2 b 5 d 6
其他命令
设置key的过期时间
expire hello 100 设置hello 100秒的过期时间
ttl hello 查看过期时间
persist hello 清除key的过期时间并且序列化 -1 代表持久化 -2 代表不存在
redis的持久化
Rdb:快照形式,redis的所有数据都是保存在内存中,定期把内存中的数据保存到磁盘 默认支持,性能比较高,
aof:append only file 把所有对redis数据库操作的命令,增删改。。保存到文件中数据库恢复时把所有命令执行一次,配置开启才开启
在redis.conf配置文件中
save the DB on disk
save 900 1
save 300 10
save 60 10000 1分钟之内10000次key改变就持久化到数据库
dump.rdb文件备份
aof
appendonly no改成yes
改完重启生效
重启完后多了一个appendonly.aof文件
appendfaync 一秒执行一次
两种持久化同时开启 使用aof恢复数据
redis集群架构
3.0过后支持集群,redis-cluster
集群搭建 先要确定有几个节点
节点有投票机制 要超过半数的节点投票才有效
所以集群中至少应该有三个节点
要保证集群的高可用,每个节点都要有一个备份机
搭建集群至少需要6台服务器
向业务中添加缓存不能影响正常业务逻辑,浏览器发起请求需要数据的时候,先向缓存中查找,如果缓存中有,则直接返回查到的结果,若缓存中没有,则走正常业务逻辑向数据库中查找,返回数据存入缓存,再返回结果