Redis 第三天

128 阅读1分钟

Redis 第三天

架构师要做技术选型,不能破坏技术的特征,比如Redis的一致性是最终一致性,如果在其他维度需要强一致性,那么就不是适合使用Redis

Redis的速度:1.5M 每秒,每秒15W笔操作,换算成K是150000K

Redis简介

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings)散列(hashes)列表(lists)集合(sets)有序集合(sorted sets) 与范围查询, bitmapshyperloglogs地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication)LUA脚本(Lua scripting)LRU驱动事件(LRU eviction)事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)

Redis中,一般说的数据结构是针对value的,只有value才有类型的区分

Redis结构.png

Redis之前,还有一个也是基于K-V的缓存数据库memcached,但是与Redis不同的是,memcached中的value没有类型这个概念。当发现两者的不同时,思考一下当没有Redis时,只有memcached时,如果表示一个复杂的数据结构?没错,就是JSON,世界上只有三种数据表示方式:

k=a
k=1
k=[1,2,3]
k={x=y}
k={{a=b},{c=d}}

根据上面的描述,其实memcached也完全是OK的,那么为什么需要去学习Redis

为什么选择Redis而不是memcached

场景:此时我们需要从缓存中通过key获取value中的某个元素,他们都是怎么做的?

计算向数据移动.png