分布式缓存-Redis介绍

#缓存的作用
提升性能、降低数据库压力、减少后端负载、消除数据库热点、IOPS提高吞吐量,最适合读多写少的场景。
#缓存有哪些
本地缓存:JVM(HashMap/List/concurrentHashMap) ,Google guava Cache
分布式缓存:memcached,Redis
我们这里就不再对多种分布式缓存进行对比,后续再完善,这里只描述Redis相关的。
#Redis是单线程为什么还这么快
RedisI/O多路复用
1.内存操作
2.Redis的单线程避免了多线程上下文切换性能损耗的问题
3.Redis利用epoll实现了I/O多路复用,客户端的请求会被放入队列一次发送到文件事件分发器,由分发器具体分发给对应的时间处理器来执行。
#Redis常用的数据类型
string ,list , set ,zset ,hash ,geo(地理位置,lbs应用)
前面五种为常用的。
#Redis常用的命令
1.string

setnx key v //当key不存在时,就set一个值
//原子计数器,这里Redis的原子操作不是cas操作,是服务端的单线程执行,在服务端命令是串行的。所以跟java中的atomic还是有很大的区别的
incr key //原子操作+1
incrby key int //原子操作+对应的数字
decr key //原子操作减1
decrby key int //原子操作减对应的数字

2.list

rpush key v1 v2 v3 
lpop key //模拟queue操作,先进先出
rpop key //模拟栈操作,现金后出

3.hash

hset key hkey hv //添加值
hgetall key //获取整个hash
hget key hkey //获取某个hash下的一个记录

4.set

sadd key //添加元素
smembers key //查看key
sismember key //检测某个key是否存在
scard key //count
spop key //弹出一个值

5.zset

zadd key score v 
zrange key 0 -1 //按score排序列出,参数区间为范围排名
zrevrange key 0 -1 //按score倒序
zcard key //count
zrank key //排名

6.其他命令

key key* //查看所有的key,线上谨慎使用,会被打死
scan //渐进式查询,用于替代key key*
scan 0[游标] match key*[正则匹配] count 10[分页数量] //返回的第一个参数会是下一个符合值的游标
info //查看Redis服务运行信息

#Redis的持久化方式
1.RDB:数据快照,定期备份,故障恢复快,但故障恢复数据会丢失。
2.AOF:命令集备份,这种方式是Redis将所有的命令都备份了下来,在故障恢复的时候用命令回放的方式重新执行一遍,数据不会丢失,但如果线上数据很大,恢复很慢
3.建议的使用方式
RDB+AOF,定期进行RDB的数据快照,在恢复的时候先预加载RDB,然后通过回放增量AOF的方式来恢复数据。

#开启混合持久化方式
aof-use-rdb-preamble=yes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值