<
缓存
>
上一篇

information
下一篇

设计模式

### redis:

1.类型:字符串、列表、集合、有序集合、哈希

(1)字符串string:是redis最基本的类型,和Memcached 一模一样的类型,一个 key 对应一个 value。

类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如:jpg图片或者序列化的对象。

    redis 127.0.0.1:6379> SET runoobkey redis
    OK
    redis 127.0.0.1:6379> GET runoobkey
    "redis"

    使用了 SET 和 GET 命令,键为 runoobkey。

(2)列表list:简单的字符串列表,按照插入顺序排序。 lpush/rpush name ljx; #向左填一个或者向右填一下

    redis 127.0.0.1:6379> lpush runoobkey redis
    (integer) 1
    redis 127.0.0.1:6379> lpush runoobkey mongodb
    (integer) 2
    redis 127.0.0.1:6379> lpush runoobkey mysql
    (integer) 3
    redis 127.0.0.1:6379> lpush runoobkey 0 10

    1) "mysql"
    2) "mongodb"
    3) "redis"

    在以上实例中我们使用了 lpush 将三个值插入了名为 runoobkey 的列表当中。

(3)集合set : string类型的无序集合,且数据唯一。底层实现是哈希表。

    redis 127.0.0.1:6379> sadd runoobkey redis
    (integer) 1
    redis 127.0.0.1:6379> sadd runoobkey mongodb
    (integer) 1
    redis 127.0.0.1:6379> sadd runoobkey mysql
    (integer) 1
    redis 127.0.0.1:6379> sadd runoobkey mysql
    (integer) 0
    redis 127.0.0.1:6379> smembers runoobkey

    1) "mysql"
    2) "mongodb"
    3) "redis"

    在以上实例中我们通过 sadd 命令向名为 runoobkey 的集合插入的三个元素。

(4)有序集合zset :有序集合、数据唯一,既要排序又要去重,比较消耗性能,能不用则不用(zadd 集合名称 顺序索引 内容)

    redis 127.0.0.1:6379> zadd runoobkey 1 redis
    (integer) 1
    redis 127.0.0.1:6379> zadd runoobkey 2 mongodb
    (integer) 1
    redis 127.0.0.1:6379> zadd runoobkey 3 mysql
    (integer) 1
    redis 127.0.0.1:6379> zadd runoobkey 3 mysql
    (integer) 0
    redis 127.0.0.1:6379> zadd runoobkey 4 mysql
    (integer) 0
    redis 127.0.0.1:6379> ZRANGE runoobkey 0 10 WITHSCORES

    1) "redis"
    2) "1"
    3) "mongodb"
    4) "2"
    5) "mysql"
    6) "4"

    使用 zadd 向 redis 的有序集合runoobkey中添加了三个值并关联上分数。

(5)哈希hash: 是一个键值(key=>value)对集合。hash适合存储对象 : hmset people name “ljx” age “18”;

    127.0.0.1:6379>  HMSET runoobkey name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000
    OK
    127.0.0.1:6379>  HGETALL runoobkey
    1) "name"
    2) "redis tutorial"
    3) "description"
    4) "redis basic commands for caching"
    5) "likes"
    6) "20"
    7) "visitors"
    8) "23000"

    添加 redis 的一些描述信息(name, description, likes, visitors) 到哈希表的 runoobkey 中。

Memcache

1.在内存里维护一张统一的巨大的hash表,用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。

memcache主要用于分担数据库负的压力,memcache将数据调用到内存中,然后从内存中读取,从而大大提高读取速度,提高动态web应用速度。

2.memcache使用场景:

  (1) 访问频繁的字典数据

  (2) 大量的hot数据

  (3) 页面缓存

  (4) 频繁的查询条件和结果

  (5) 临时处理的数据

redis和memcache的区别:

(1)数据存储方式:

redis存储在硬盘上,电脑关机,服务器重启,数据都不会丢失,数据持久化

mencache存储在内存中,电脑关机,服务器重启,数据都会丢失,数据不持久

(2)数据类型:

redis有5中数据类型、memcache只有一个string类型

(3)相比速度,memcache不一定比redis慢

redis补充: redis内存中的数据结构存储系统,高性能的key-value数据库。正常数据库中的数据都写在磁盘上,redis写在缓存中会定时刷新到磁盘上 用处:

如图: image

Top
Foot