Redis

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis

简单介绍一下 redis

redis是一个key-value类型的非关系型数据库,基于内存也可持久化的数据库,相对于关系 型数据库(数据主要存在硬盘中),性能高,因此我们一般用redis来做缓存使用;

Redis支持5种数据类型,string、hash、list、set、zset(sorted set);



Redis key过期的方式

被动删除:当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key。

只有key被操作时(如GET),REDIS才会被动检查该key是否过期,如果过期则删除之并且返回NIL。

主动删除:由于惰性删除策略无法保证冷数据被及时删掉,所以Redis会定期主动淘汰一批已过期的key。

maxmemory当前已用内存超过maxmemory限定时,触发主动清理策略。

volatile-lru:只对设置了过期时间的key进行LRU(默认值)

allkeys-lru : 删除lru算法的key

volatile-random:随机删除即将过期key

allkeys-random:随机删除

volatile-ttl : 删除即将过期的

noeviction : 永不过期


基于 redis 的分布式锁

获取锁的时候调用 setnx,如果返回 0,则该锁正在被别人使用,返回 1 则成功获取 锁。 还设置一个获取的超时时间,若超过这个时间则放弃获取锁。


redis集群同步数据

一个集群只能有16384个槽,编号0-16383。这些槽会分配给集群中的所有主节点,分配策略没有要求。可以指定哪些编号的槽分配给哪个主节点。集群会记录节点和槽的对应关系。

接下来就需要对key求哈希值,然后对16384取余,余数是几key就落入对应的槽里。slot = CRC16(key) % 16384。

以槽为单位移动数据,因为槽的数目是固定的,处理起来比较容易,这样数据移动问题就解决了。

使用哈希函数计算出key的哈希值,这样就可以算出它对应的槽,然后利用集群存储的槽和节点的映射关系查询出槽所在的节点,于是数据和节点就映射起来了,这样数据分配问题就解决了。


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
3月前
|
缓存 NoSQL Redis
Redis雪崩
Redis雪崩
31 0
|
7月前
|
存储 NoSQL Redis
|
8月前
|
运维 NoSQL Shell
redis(2)
Redis Cluster 是 redis的分布式解决方案,在3.0版本正式推出 当遇到单机、内存、并发、流量等瓶颈时,可以采用Cluster架构方案达到负载均衡目的。 Redis Cluster之前的分布式方案有两种: 1)客户端分区方案: 优点分区逻辑可控,缺点是需要自己处理数据路由,高可用和故障转移等。 2)代理方案: 优点是简化客户端分布式逻辑和升级维护便利,缺点加重架构部署和性能消耗。 官方提供的 Redis Cluster集群方案,很好的解决了集群方面的问题
|
7月前
|
存储 缓存 NoSQL
|
8月前
|
运维 NoSQL Shell
redis-2
redis-2
50 0
|
NoSQL Redis
|
存储 NoSQL Redis
什么是Redis?
什么是Redis?
90 2
什么是Redis?
|
消息中间件 存储 NoSQL
Redis几个简单的问题
《基础系列》
110 0
|
存储 消息中间件 缓存
Redis的使用
Redis的使用
238 0
Redis的使用
|
存储 缓存 NoSQL
redis为什么这么快?
redis为什么这么快?