在互联网后台架构中,需要应付高并发访问数据库,很多时候都会在数据库上层增加一个缓存服务器来保存经常读写的数据以减少数据库压力,可以使用LVS、Memcached或Redis,Memcached和Redis是同样类型产品,但是Redis更好的地方是可以保存数据快照,在机器重启后,可以保存一部分数据,而Memcached会断电丢失数据,Redis还有如下有点:
- 丰富的数据类型,如:string, hash, list, set, hyperloglog等
- 提供AOF和RDB两种数据持久化方式(持久化需要合理规划内存!!) RDB是Redis默认的持久化方式,默认数据文件是: dump.rdb
- 所有操作都是原子性的,支持事务
下面来安装使用一下:
[下载](wget http://download.redis.io/releases/redis-3.0.4.tar.gz)
安装
tar zxf redis-6.0.8.tar.gz
cd redis-6.0.8
yum install tcl - Linux需要执行,Mac不需要
make
make test
sudo make install
如提示pkg-config找不到,需要安装: brew install pkg-config
配置
sudo cp redis.conf /etc/
sudo vim /etc/redis.conf —> 修改这行为yes: daemonize yes,使Redis可以在后台运行启动
redis-server ~/Documents/usr/path-var/redis-6.0.8/conf/redis.conf
连接测试
redis-cli -h 127.0.0.1 -p 6379
查看内存使用状况:
use_memory_human:返回Redis分配的内存总量
use_memory_rss: 从操作系统的角度,返回redis已分配的内存总量,与top命令输出结果一致
use_memory_peak:内存消耗峰值
使用Python连接Redis:
- pip3 install redis
读到的值,也是刚刚设置的结果
完成
Redis数据类型说明:- string: 存储简单的数据,可以接受任何格式的二进制数据,如JPEG图片或JSON字符串,最多可容纳数据长度为512MB。
- hash: 接近数据库模型,value值是一个hashmap的结构
- list: 按照插入顺序排序的字符串链表,可以被用作消息队列
- set: 无序且不重复的元素集合
- sorted set: 有序且不重复的元素集合,元素插入后就会自动排序,因此很适合开发需要排行榜类的应用
扩展
集群: 推荐使用Twitter开源的Twemproxy的Redis代理,原理:Redis客户端把请求发送到Twemproxy,Twemproxy根据路由规则发送到正确的Redis实例,最后Twemproxy把结果汇集返回给客户端。缺点:不支持平滑重启Redis实例,可以使用豌豆荚对其的改进软件: Codis。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 linjk121@163.com.