分布式存储Redis(介绍/安装)

  • A+
所属分类:Redis 数据库

为什么使用Redis

官网 http://redis.io/

90后哥们写的 http://redisdoc.com/

最早以前的互联网架构都是垂直型的,前端web服务器连接后端数据库服务器。随着用户数量、访问量增加,架构一点点演变,负载均衡、高可用、缓存等技术一点点完善。为了缓解数据库读的压力,减少数据库磁盘IO。采用Memcache等技术,当用户第一次请求数据库资源的时候,先通过Memcache,如果Memcache有数据,就把结果返回给用户。如果Memcache没有数据,去数据库里查,然后把数据缓存到Memcache的内存中,这样下次用户在请求相同资源,就不需要去数据库取了。

问题

很长一段时间,采用上面的技术,可以解决问题。但是随着网站访问量持续增长,用户session、购物车等缓存信息,都存储到缓存服务器上。这样风险就很大,因为Memcache是把数据寸到内存上的,如果服务器down机、重启,所有的缓存数据全部丢失,用户全部都去数据库取,数据库压力一下上来,有可能挂掉。目前国内最大的redis集群就是新浪微博,据说后端数据库停机几小时,Redis缓存都能撑住几小时。Redis可以持久化存储,把缓存存储到硬盘上,通过集群技术,解决缓存单点故障的问题。

Redis是一个开源的,使用C语言编写的、支持网络交与的、可基于内存可持久化的Key-Value数据库,目前是Vmware组织在维护redis。

Memcache和Redis的对比

http://blog.csdn.net/tonysz126/article/details/8280696/

类型都是key-value的数据库,都支持过期策略。Redis支持5个数据类型。Redis支持持久化、主从复制、虚拟内存,这些Memcache不支持。

Redis安装

wget http://download.redis.io/releases/redis-3.0.7.tar.gz
tar -zxvfredis-3.0.7.tar.gz
cd redis-3.0.7
makePREFIX=/usr/local/redis install

配置启动脚本

ln -s/usr/local/redis/bin/redis-cli /usr/local/bin/redis-cli
cputils/redis_init_script /etc/init.d/redis
mkdir /etc/redis
cp redis.conf/etc/redis/6379.conf
vim /etc/init.d/redis
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli

修改配置,redis后台启动

vim/etc/redis/6379.conf
daemonize yes
/etc/init.d/redis start
redis-cli-h 127.0.0.1 -p 6379

Redis增删改查

插入key/value

127.0.0.1:6379> set hello hehe
OK

获取value

127.0.0.1:6379> get hello
"hehe"

获取所有keys

127.0.0.1:6379> KEYS *
1)"hello12"
2)"hello1"
127.0.0.1:6379> KEYS hello?
1)"hello1"
2)"hello3"

判断keys是否存在

127.0.0.1:6379> EXISTS hello1
(integer)1

删除key

127.0.0.1:6379>DEL hello
(integer)1
127.0.0.1:6379>DEL hello
(integer)0

注:返回1是删除,返回0是没有key

追加

127.0.0.1:6379>APPEND key4 world
(integer)10
127.0.0.1:6379>GET key4
"hehe1world"

投票计数器

127.0.0.1:6379>INCR num
(integer)1
127.0.0.1:6379>INCR num
(integer)2
127.0.0.1:6379>GET num
"4"
127.0.0.1:6379>INCRBY num 10
(integer)14
127.0.0.1:6379>GET num
"14"

减数

127.0.0.1:6379>DECR num
(integer)12
127.0.0.1:6379>DECR num
(integer)11
127.0.0.1:6379>DECRBY num 10
(integer)1

Redis配置

配置redis日志输出

vim/etc/redis/6379.conf
logfile"/var/log/redis.log"

修改redis的pid文件位置

vim /etc/redis/6379.conf
/var/run/redis_6379.pid

YaLei

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: