您的位置:首页 > 数据库 > Redis

Redis(1)--基础知识,数据类型,过期键删除策略

2019-05-17 15:40 549 查看

本文我们介绍Redis的基础知识,数据类型与过期键删除策略。

什么是Redis

redis是一种支持Key-Value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。该数据库使用ANSI C语言编写,支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。

Redis的优势

  • 数据存在内存中,速度快
  • 支持丰富数据类型,一共支持五种数据类型
  • 支持事务,其操作都是原子性
  • 具有丰富的特性,可用于缓存,消息等

Redis的数据类型

Redis一共支持五种数据类型,分别为字符串,哈希,列表,集合,有序集合,下面我们进行逐项讲解。

1 字符串(string)
string 是 redis 最基本的类型,一个 key 对应一个 value。string 类型是二进制安全的,意思是 redis 的 string 可以包含任何数据,比如jpg图片或者序列化的对象。该值最大能存储 512MB。

SET key value

该指令设置指定 key 的值

GET key

获取指定 key 的值

2 哈希
Redis hash是一个键值对的集合,是 4000 一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis 中每个 hash 可以存储 2^32 - 1 键值对(40多亿)。

HSET key field value

将哈希表 key 中的字段 field 的值设为 value 。

HMSET key field1 value1 [field2 value2 ]

同时将多个 field-value (域-值)对设置到哈希表 key 中。

HGET key field

获取存储在哈希表中指定字段的值。

3 列表(list)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。一个列表最多可以包含2^32 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

LPUSH key value1 [value2]

将一个或多个值插入到列表头部

LPOP key

移出并获取列表的第一个元素

4 集合(Set)
Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中集合是通过哈希表实现的。

SADD key member1 [member2]

向集合添加一个或多个成员

5 有序集合(sorted set)
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。

ZADD key score1 member1 [score2 member2]

向有序集合添加一个或多个成员,或者更新已存在成员的分数

Redis的过期键删除策略

如果Redis的一个键过期了,那应该怎么将其删除呢?

三种删除策略

  1. 定时删除:在设置键的过期时间的同时,创建一个定时器( timer ). 让定时器在键的过期时间来临时,立即执行对键的删除操作。
  2. 惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键。
  3. 定期删除::每隔一段时间,程序就对数据库进行一次检查,删除里面的过期键。至于要删除多少过期键,以及要检查多少个数据库, 则由算法决定。

Redis的策略

Redis服务器实际使用的是惰性删除和定期删除两种策略: 通过配合使用这两种删除策略,服务器可以很好地在合理使用CPU时间和避免浪费内存空间之间取得平衡。

参考:Redis教程
redis过期键删除策略
超强、超详细Redis入门教程

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: