该向客户推荐Redis、还是Memcached?

  • 2019 年 10 月 6 日
  • 筆記

1、Redis、Memcached的主要区别是?

基于Key、Value型的Nosql数据库很多,我们经常听说的是以上两款。在几年前,我们经常听说Memcached ,但这几年Redis更耳闻能详。

A、Redis存储的数据类型更多。Memcached一般只能存储普通的字符串键值,而Redis还可以存储其他4种数据结构(列表、集合、散列表、有序集合)。

B、Redis支持数据落盘。Redis既可以用作主数据库,又可以作为其他存储系统的辅助数据库。而Memcached一般只用为内存数据库使用。

C、Redis支持主从复制。Redis可作为HA环境中使用,主用服务器通过日志将修改数据自动同步到从服务器中。

二、Redis分别支持的五种数据类型是?

1、字符串

set hello world //hello是键名,world是值。String是数据类型

2、列表

rpush list-key item

rpush list-key item2 //list-key是键名,item、item2是值。

3、集合

sadd set-key item1

sadd set-key item2

sadd set-key item3 //集合与列表类似,但集合不允许存储相同的值

4、散列

散列就像是一个微型的redis

hset hash-key sub-key1 value1

hset hash-key sub-key2 value2

5、有序集合

zadd zset-key 728 member1

zadd zset-key 982 member0 //member1、member0是成员,728、982是浮点数分值。有序集合与散列类似,可以根据成员访问元素;但有序集合可以根据分值、分值的排列顺序来访问元素的结构。

三、我们用Redis数据类型来解决一个实际问题!

1、如果有几十篇文章,需要进行投票,需要避免单个用户一天内重复投票。为避免存储无效的用户数据。我们可以用集合类型存储用户的ID。

2、如果我们需要存储几十篇文章,我们可以用有序集合类型。有序集合的成员为文章ID,分值为文章的发布时间。我们可以根据文章的发布时间进行文章的排序。