Redis和memcached缓存技术

Posted kjlysx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis和memcached缓存技术相关的知识,希望对你有一定的参考价值。

缓存的定义:缓存就是在内存中存储的数据备份,当数据没有发生本质变化的时候,我们避免数据的查询操作直接连接数据库,而是去    内容中读取数据,这样就大大降低了数据库的读写次数,而且从内存中读数据的速度要比从数据库查询要快很多。

1、Memcached

协议简单、基于libevent的事件处理、内置内存存储方式、memcached不互相通信的分布式。 各个memcached不会互相通信以共享信息,分布策略由客户端实现。不会对数据进行持久化,重启memcached、重启操作系统会导致全部数据消失。

Memcached常见的应用场景是存储一些读取频繁但更新较少的数据,如静态网页、系统配置及规则数据、活跃用户的基本数据和个性化定制数据、准实时统计信息等。
2、Redis

edis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string、list、set、zset(有序集合)和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序和算法。

与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件(RDB和AOF两种方式),并且在此基础上实现了master-slave(主从)同步,机器重启后能通过持久化数据自动重建内存,使用Redis作为Cache时机器宕机后热点数据不会丢失。

Redis丰富的数据结构也使其拥有更加丰富的应用场景。Redis的命令都是原子性的,可以简单地利用INCR和DECR实现计数功能。使用list可以实现获取最近N个数的操作。sort set支持对数据排序,可以应用在排行榜中。set集合可以应用到数据排重。Redis还支持过期时间设置,可以应用到需要设定精确过期时间的应用。只要可以使用Redis支持的数据结构表示的场景,就可以使用Redis进行存储。

    1)Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
    2)Redis支持master-slave(主-从)模式应用
    3)Redis支持数据持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
    4)Redis单个value的最大限制是1GB,memcached只能保存1MB的数据。

Redis的简单安装

 

1.获取redis资源

  wget http://download.redis.io/releases/redis-4.0.8.tar.gz

2.解压

  tar xzvf redis-4.0.8.tar.gz

3.安装

  cd redis-4.0.8

  make

  cd src

  make install PREFIX=/usr/local/redis

4.移动配置文件到安装目录下

  cd ../

  mkdir /usr/local/redis/etc

  mv redis.conf /usr/local/redis/etc

 5.配置redis为后台启动

  vi /usr/local/redis/etc/redis.conf //将daemonize no 改成daemonize yes

6.将redis加入到开机启动

  vi /etc/rc.local //在里面添加内容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是开机调用这段开启redis的命令)

7.开启redis

  /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 

 

常用命令  

  Redis-server /usr/local/redis/etc/redis.conf //启动redis

  rm -rf /usr/local/redis //删除安装目录

  rm -rf /usr/bin/redis-* //删除所有redis相关命令脚本

  rm -rf /root/download/redis-4.0.4 //删除redis解压文件夹

       Redis-server /usr..../redis.conf 启动redis服务,并指定配置文件

       Redis-cli 启动redis 客户端

       Pkill redis-server 关闭redis服务

       Redis-cli shutdown 关闭redis客户端

       Netstat -tunpl|grep 6379 查看redis 默认端口号6379占用情况

memcached 安装

      1。安装前的准备
  要安装memcached,需要有libevent的支持。
  centos通过
  yum install libevent-devel
  安装即可
  其它版本可通过安装libevent的源文件获得
  2。下载安装 目前最新版本为 memcached-1.2.6.tar.gz
  cd /usr/src
  wget http://www.danga.com/memcached/dist/memcached-1.2.6.tar.gz
  tar xzf memcached-1.2.6.tar.gz
  cd memcached-1.2.6
  ./configure --prefix=/usr/local/memcached
  make
  make install
  3。启动
  /usr/local/memcached/bin/memcached -d -m 512 -l 127.0.0.1 -p 11211 -u root
  表示已守护进程的方式启动,监听于 127.0.0.1 的11211端口,使用root用户,最大使用512M内存
  可以同时开多个memcached,但要监听在不同的端口.
  说明:如果没有带 -u root 的话就会报:
  can‘t run as root without the -u switch

部分来源转自网络,参考文献:https://blog.csdn.net/greensomnuss/article/details/81084423      https://www.cnblogs.com/limit1/p/9045183.html

 


























以上是关于Redis和memcached缓存技术的主要内容,如果未能解决你的问题,请参考以下文章

缓存技术PK|Memcached vs Redis, 选哪一个??

缓存技术PK:选择Memcached还是Redis?

分布式缓存技术PK:选择Redis还是Memcached?

缓存技术比拼:Redis与Memcached的同与不同

对比Memcached和Redis,谁才是适合你的缓存?

Redis VS Memcached,到底怎么选?