Redis存储系统

Redis存储系统

1.什么是Redis? Remote Dictionary Server(Redis)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key- Value 数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列 表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

2.Redis的特点什么是?

a、支持多种数据结构,如 string(字符串)、 list(双向链表)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基数估算)

b、支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失的手 段。

c、支持通过Replication进行数据复制,通过master-slave机制,可以实时进行数据的同步复制,支持多级复制和增量复制, master-slave机制是Redis进行HA的重要手段。

d、单进程请求,所有命令串行执行,并发情况下不需要考虑数据一致性问题。

3.Redis数据类型有哪些?

a、String(字符串) b、Hash(hash表) c、List(链表) d、Set(集合) e、SortedSet(有序集合zset) 4.Redis的配置以及持久化方案有几种?

a、RDB方式 b、AOF方式

5.Redis中的常用命令哪些? a、hset 存储一个哈希键值对的集合 b、hget获取一个哈希键的值 c、hdel 删除一个或多个字段 d、hgetall 获取一个哈希是键值对的集合 e、lpush key value向链表左侧添加 f、rpush key value向链表右侧添加 g、lpop key 从左边移出一个元素 h、rpop key 从右边移出一个元素 i、keys * 返回所有的key 可以加*通配 j、exists key判断string类型一个key是否存在 如果存在返回1 否则返回0

6.Redis 主要消耗什么物理资源? 内存

7.Redis 有哪几种数据淘汰策略? a、noeviction:返回错误当内存限制达到,并且客户端尝试执行会让更多内存被使用的命令。 b、allkeys-lru: 尝试回收最少使用的键(LRU),使得新添加的数据有空间存放。 c、volatile-lru: 尝试回收最少使用的键(LRU),但仅限于在过期集合的键,使得新添加的数据有空间存放。 d、allkeys-random: 回收随机的键使得新添加的数据有空间存放。 e、volatile-random: 回收随机的键使得新添加的数据有空间存放,但仅限于在过期集合的键。 f、volatile-ttl: 回收在过期集合的键,并且优先回收存活时间(TTL)较短的键,使得新添加的数据有空间存放。

8.Redis 官方为什么不提供 Windows 版本? 因为目前 Linux 版本已经相当稳定,而且用户量很大,无需开发 windows 版本,反而会带来兼容性等问题。

9.为什么 Redis 需要把所有数据放到内存中? Redis 为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。所以 redis 具有快速和数据持久化的 特征,如果不将数据放在内存中,磁盘 I/O 速度为严重影响 redis 的性能。在内存越来越便宜的今天,redis 将会越来越受欢 迎, 如果设置了最大使用的内存,则数据已有记录数达到内存限值后不能继续插入新值。 10.Redis 有哪些适合的场景?

a、会话缓存(Session Cache):最常用的一种使用 Redis 的情景是会话缓存(sessioncache),用 Redis 缓存会话比其他存 储(如Memcached)的优势在于:Redis 提供持久化。当维护一个不是严格要求一致性的缓存时,如果用户的购物车信息全部丢 失,大部分人都会不高兴的,现在,他们还会这样吗?幸运的是,随着 Redis 这些年的改进,很容易找到怎么恰当的使用Redis 来缓存会话的文档。甚至广为人知的商业平台 Magento 也提供 Redis 的插件。

b、全页缓存(FPC):除基本的会话 token 之外,Redis 还提供很简便的 FPC 平台。回到一致性问题,即使重启了 Redis 实 例,因为有磁盘的持久化,用户也不会看到页面加载速度的下降,这是一个极大改进,类似 PHP 本地FPC。再次以 Magento 为例,Magento 提供一个插件来使用 Redis 作为全页缓存后端。此外,对 WordPress 的用户来说,Pantheon 有一个非常好 的插件 wp-redis,这个插件能帮助你以最快速度加载你曾浏览过的页面。

c、队列:Reids 在内存存储引擎领域的一大优点是提供 list 和 set 操作,这使得 Redis 能作为一个很好的消息队列平台来使 用。Redis 作为队列使用的操作,就类似于本地程序语言(如 Python)对 list 的 push/pop操作。如果你快速的在 Google 中 搜索“Redis queues”,你马上就能找到大量的开源项目,这些项目的目的就是利用 Redis 创建非常好的后端工具,以满足 各种队列需求。例如,Celery 有一个后台就是使用Redis 作为 broker,你可以从这里去查看。

d、排行榜/计数器:Redis 在内存中对数字进行递增或递减的操作实现的非常好。集合(Set)和有序集合(SortedSet)也使得 我们在执行这些操作的时候变的非常简单,Redis 只是正好提供了这两种数据结构。

e、发布/订阅:最后(但肯定不是最不重要的)是 Redis 的发布/订阅功能。发布/订阅的使用场景确实非常多。我已看见人们在 社交网络连接中使用,还可作为基于发布/订阅的脚本触发器,甚至用 Redis 的发布/订阅功能来建立聊天系统! 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值