e3mall Day06

来源:互联网 发布:动漫电影推荐 知乎 编辑:程序博客网 时间:2024/06/04 18:37

topic01 redis

redis和memcache区别 redis可以数据持久化

redis安装

C语言开发的 编译需要 yum gcc-c++
tar redis 解压
make 编译
make install PREFIX=/usr/local/redis 安装到指定目录
cd /usr/local/redis/bin
./redis-server 前端启动
*bin/dumb.rdb 数据文件
*后端启动:需要一个配置文件
cp ~/redis-3.0.0/redis.conf /usr/local/redis/bin
vim redis.conf
daemonize yes
./redis-server redis.conf

关闭:./redis-cli shutdown
连接服务端:./redis-cli 默认本机,端口号6379

./redis-cli -h (+IP地址) -p (+port)

redis命令

ping 健康检查
常用数据类型(value):string,hash
hashmap的原理:哈希值 不会顺次查找

incr应用:高并发情形:统计访问量、生成主键
list场景:队列、栈操作的模拟
set …
sortedset ‘z’
key过期时间 expire ttl -1永久 -2不存在

持久化方案
Rdb(默认) redis.conf Save the DB on disk
aof append only mode (默认no)

redis集群

redis-cluster
redis集群 单机版性能瓶颈,内存限制
ping 半数以上投票容错机制
客户端可以与其中任一节点直接连接
均匀放置:crc6算法 哈希槽 16384个槽

“伪分布式”配置 新技能:写脚本start-all.sh 修改权限

/usr/local/redis/bin复制六份(三个,主从)redis
改redis.conf端口号
cluster-enabled yes

编写并执行(增加权限)start-all.sh

集群需要工具:源代码src文件夹 redis-trib.rb
cp redis-trib.rb /usr/local/redis/bin
ruby脚本搭建集群
需要安装ruby 和第三方库
yum install ruby
yum install rubygems
gem install redis-3.0.0.gem

cd /usr/local/redis/bin
执行ruby脚本:搭建集群 主从节点集群
./redis-trib.rb create --replicas 1 192.168.230.100:7001 192.168.230.100:7002 192.168.230.100:7003 192.168.230.100:7004 192.168.230.100:7005 192.168.230.100:7006

*真实集群搭建时候,只要在任意一个服务器上执行ruby命令即可
注意:防火墙关闭

使用任意一个节点的客户端连接集群:

./redis-cli -p <port> -c 

-c 连接集群

topic02 jedis和编码部分

jedis单机版

使用连接池:JedisPool单例
关闭连接

jedis集群版 JedisCluster单例 参数Set

切换单机/集群:接口

coomon 工具类:jedis接口和实现类 jedis依赖挪到common里
ac-jedis.xml 写bean:单机版、集群版
测试(切换时候代码不变)

添加缓存~~~

缓存加在服务层还是表现层?
推荐服务层,可用于别的表现层

缓存查询、添加都不应该影响业务逻辑===》tc块+日志
key:缓存主题 value:哈希(kv) 注意:pojo(service)《==》

json(redis)
注:StringUtils:org.apache.commons.lang3.StringUtils包

缓存同步

service增删改操作,删除缓存中的数据
!!!精确删除field(cid,比如某块广告区的内容)不要把整个hash

都删了,这样,改了一块广告区,整个页面都要重新加载