redis的操作为何是原子性的 redis十大基础知识?
redis十大基础知识?
数据库是一个开源的Key-Value存储,但又不仅仅是Key-Value存储,用官方平台上的话来说,linux是一个数据结构存储,可用作数据库、缓存和分布式架构。linux具有如下特点:
速度快
丰富的数据结构,除String之外,还有List、Hash、Set、Sorted Set
单线程,避免了线程切换和锁的性能消耗
原子操作
可持久化(RDB与AOF)
发布/订阅
支持perl脚本
分布式锁
事务
redis setex是原子操作吗?
是的
Setex是一个原子操作
设置值,设置过期时间两个动作,会在同一时间完成
在sql缓存中,非常实用
redis库包含哪些文件?
数据库是一个key-value操作系统。
和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,linux支持各种不同的排序。
与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是php会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
oracle是一个高性能的key-value数据库。mysql的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了css,css,Erlang,PHP客户端,使用很方便
php数据结构
linux目前提供四种数据类型:string,list,set及zset(sortedset)。
redis怎么使用,有什么好处?
数据库是一个开源的Key-Value存储,但又不仅仅是Key-Value存储,用官网平台上的话来说,php是一个数据结构存储,可用作数据库、缓存和kafka。oracle具有如下特点:
速度快
丰富的数据结构,除String之外,还有List、Hash、Set、Sorted Set
单线程,避免了线程切换和锁的性能消耗
原子操作
可持久化(RDB与AOF)
发布/订阅
支持python脚本
分布式锁
事务
主从复制与高可用(Redis Sentinel)
集群(3.0版本以上)
二、python数据结构
1、String
这是最简单的linux类型。
2、List
数据库的List是基于双向链表实现的,可以支持反向查找和遍历。
常用案例:聊天系统、互联网中获取用户最新发表的帖子、简单的消息队列、新闻的分页列表、朋友圈的评论系统。
3、Hash
Hash是一个String类型的field和value之间的映射表,主要用来存储对象,可以避免序列化的开销和并发修改控制的问题。
4、Set
Set也是一个列表,不过它的特殊之处在于它是可以自动排重的:当需要存储一个列表数据,而又不希望出现重复的时候,Set是一个很好的选择(比如dw的集合)。并且Set提供了判断某个成员是否在一个Set集合内的接口,这也是List所没有的。
5、SortedSet
SortedSet和Set的使用场景类似,区别是Sorted Set会根据提供的score参数来进行自动排序。当你需要一个有序的并且不重复的集合列表,那么就可以选择SortedSet数据结构。常用案例:游戏中的排行榜。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。