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、付费专栏及课程。

余额充值