Redis总结资料

Redis 是什么?
Redis是一个使用C语言写成的,开源的基于内存的高性能key-value数据库。

Redis支持哪些数据类型?
String(字符串)
格式:set key value
string类型是二进制安全的。
string类型是Redis最基本的数据类型,一个键最多能存储512MB
Hash(哈希)
格式:hmset name key1 value1 key2 value2
Redis hash 是一个键值对(key=>value)集合
Redis hash 是一个string类型的field和value的映射表,hash特别适用于存储对象。
List(列表)
Redis列表是简单的字符串列表,按照插入顺序排序,你可以添加一个元素到列表的头部或者尾部
格式:lpush name value 在key对应list的头部添加字符串元素
格式:rpush name value 在key对应list的尾部添加字符串元素
Set(无序集合)
格式:sadd name value
Redis 的set是string类型的无序集合
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)
Zset(sorted set 有序集合)
格式:zadd name score value
Redis的zset和set一样也是string类型元素的集合,不允许重复的成员
不用的是每个元素都会关联要给double类型的分数,Redis正是通过分数来为集合中的成员进行从小到大的排序
zset的成员是唯一的,但分数score是可以重复
使用场景
| 问题 |参考答案 |
|-Redis有哪些数据类型-|①string ②list ③set ④sorted set ⑤hash–
| |使用场景参考如下:
string,用作计数器,统计在线人数等等,可以存储二进制数据如使用他来存储图片等。
hash,存放键值对,一般可以用来存某个对象的基本属性信息,例如:用户信息,商品信息等。
list,列表类型,可以用于实现消息队列,也可以使用它提供的range命令,做分页查询功能。
set,可以用作去重功能,例如用户名不能重复等,另外,还可以对集合进行交集,并集操作,来查找某些元素的 共同点。

Redis特性是什么?
速度快
数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度是O(1),每秒可以处理超过10w次读写操作,是已知性最快的Key-Value DB
支持丰富的数据类型
支持以上8种数据类型
支持事务
操作不是原子性的,即使某些操作失败,也不会影响别的操作的执行
丰富的特性
可用于缓存,按key设置过期时间,过期后将会自动删除
每个value的最大限制是1gb,不像memcached只能保存1MB的数据

Redis持久化是什么?
持久化就是把内存的东西写到磁盘中去,防止服务当机宕机了内存数据丢失
Redis提供了两种持久化方式:一:RDB (默认) 二:AOF
RDB(Redis Database):
在指定的时间间隔内将内存中的数据集快照写入磁盘。
优点:
1.访问性能最佳
2.适合大规模的数据恢复
3.对数据完整性和一致性要求不高
缺点:
1.数据不安全,会丢失最后一次快照后的所有修改,fork消耗极大
AOF(Append-only file)
以日志的形式来记录每个写操作,将Redis执行过的所用写指令记录下来(读操作不记录)
优点:
1.每秒同步:appendfsync always 同步持久化,每次发生数据变更会被立即记录到磁盘,性能较差但是数据完整性比较好
2.每修改同步:appendfsync everysec 异步操作,每秒记录,如果一秒内宕机,有数据丢失
3.不同步:appendfsync no 从不同步
数据相对安全
缺点:
1.相同数据集的数据而言AOF文件要远大于RDB文件,恢复速度慢于RDB
2.AOF运行效率要慢于RDB,每秒同步策略效率较好,不同步效率和RDB相同
访问性能相对不是最佳

Redis是多线程还是单线程?
单线程,为什么单线程还是那么的快?
1.纯内存操作
2.核心基于非阻塞IO多路复用机制
3.避免了多线程的频繁上下文切换问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值