本文写作源于最近产品中部分功能用到了redis
先简单介绍一下本文的主题redis吧:
redis在功能上是一个与memecache类似的软件,但它比memecache提供了更强大的功能。redis本质上是一个key-value类型的内存数据库。
其value可以是String,List,Set,Sorted Set,Hash。
很多地方都写到redis的安装,这里不再赘述.
1、redis是什么?
redis是一个开源的key-value数据库,它是一个内存数据库,且提供持久化存储(会以一定的方式把数据备份到磁盘)。
要问key-value数据库是什么吗?我只能简单的告诉你和它对应的是我们所熟知的关系型数据库,它的存储形如:
key:value
a:1
b:2
所有的操作都是以key为单位的。
2、为什么用key-value存储?
对于我们而言原因有两个:
1、速度 ,有些并发比较高的操作,mysql无法满足需求
2、有些数据本身就具有key-value性质
先说说速度:比如秒杀、pv计数,这些靠已有的db是跟本搞不定的。
那么哪些数据本身就具有key-value性质呢,比如网站的个人中心的最近来访,这是一个动态的且需排序的集合。
先说说redis中都有哪些数据结构
string(字符串)
lists(列表)
sets(集合)
sortid sets(有序集合)
hashs(哈希表)
键值的数据类型决定了该键值支持的操作。Redis 支持诸如列表、集合或有序集合的交集、 并集、查集等高级原子操作;同时,如果键值的类型是普通数字,Redis 则提供自增等原子 操作。
说说这些数据结构都能做什么:
string就不说了,最简单的数据结构,当值为数字时支持自增自减.这个在快速计数上是很有用的.
lists可以用来构建队列,
sorted set可以用来构建有优先级的队列,也可以构造一个无重复的有序集合,比如最近来访.
set :如果你想维持一个不重复的数据集,那就往set里面仍吧,去重的工作它会帮你做.