项目学习记录-缓存数据类型与持久化

10 篇文章 0 订阅
3 篇文章 1 订阅

缓存数据类型

value的几种数据类型:String ,Hash, Set,SortedSet,List
String
设置缓存:set [key] [value]
取数据: get [key]
删除键: del [key]
查看所有key: keys *
+1和-1:incr decr .在高并发时解决访问量问题。

Hash:
设置缓存:hset
hset hash1 field1 1,
hset hash1 field2 2
hset hash1 field3 3
查看hash1中的key: hkeys hash1
查看hash1中的值:hvals hash1
键值:hgetall hash1
删除 :hdel hash1 field3

List
存值:具有方向性,后存的在外面
从左存值: lpush list 1,2,3,4,5,6.按照这个顺序往里面放。先放的在里面。同时可以从右边放
从右存值:rpush list a,b,c,d,e,f。
所以里面的顺序为:6 5 4 3 2 1 a b c d e f.
取值:也可从两边取。取出之后就没有了
从右边取一个:rpop list
从左边取一个:lpop list
查看元素: lrange list [起始元素] [终端元素]
0表示第一个,-1表示是最末元素。
eg:lrange list 0 -1
6 5 4 3 2 1 a b c d e f.

Set
添加:sadd [key] [values]
eg :sadd set1 a b c d a b
移除:srem [key] [value]
eg :srem set1 a
查看所有
smenbers set1
结果:b c d
集合运算
取差集:sdiff 集合A-集合B
取交集:sinter
取并集:sunion

持久化方案

RDB:快照形式,即把所有的内存上的缓存数据都保存到磁盘上。默认的持久方案。
该模式会使用特定的算法持久化数据到.rdb文件中。
但是同样还是会出现缓存数据丢失的情况。

AOF:执行了DML时就会持久化,该模式开启时,redis每秒钟都会访问磁盘,将所有数据变化会存到一个.aof的文件中。所以该模式会比较影响性能。两种模式可以同时开启。

expire: 设置key的过期时间
expire key1 100 设置100秒过期。【可重复设置】
ttl:
查看key的过期时间
ttl key1
>0,表示key有效,
-1,已经持久化了
-2,key不存在了
持久化key:Persist key1

redis集群:redis-cluster

多个redis构成的缓存结构。每个redis通过ping-pong机制通信,客户端只需要如果链接上集群中个任意一个redis即可。
每个redis的缓存内容数据是不一样的,如果任意一个redis挂了,集群就蹦了。除非有备份机顶替。
但是redis集群有保证redis被认为误挂的投票容错机制,即集群中超过半数的redis节点认为其中一个节点挂了,才确认reids是挂了。

redis集群中槽Slot:
redis-cluster中一共有16384个哈希槽。根据集群中redis的节点的数量和服务器的性能分配这些哈希槽。当客户端需要存放缓存数据时,redis会拿缓存数据的key值根据crc16算法生成一个数值,再用这个数值对16384取余,最后根据得到的值与槽点的分配存到特定的redis节点上。
例如:
server1的槽为:0-5000
server2的槽为:5001-1000
server3的槽为:10001-16383
hello的key根据crc16算法的到数值对16384取余得500,所以存放到server1.
同理,hello2存放到server3.
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值