Redis主从配置非常简单
# 第一步配置访问主库的密码
masterauth <master-password>
# 第二步redis-cli里直接开启同步
slaveof 192.168.78.129 8000 # 参数是主库IP和端口
slaveof no one # 关闭同步办法
月度归档:2019年03月
两步开启redis缓存淘汰算法
https://blog.csdn.net/wy757510722/article/details/77684083
- maxmemory 256mb # 配置内存限额
- maxmemory-policy volatile-lru # 配置淘汰策略
.php.bin文件
opcache.file_cache string
配置二级缓存目录并启用二级缓存。 启用二级缓存可以在 SHM 内存满了、服务器重启或者重置 SHM 的时候提高性能。 默认值为空字符串 “”,表示禁用基于文件的缓存。
swoole协程的通道
高效的简洁的inotify+rsync同步代码
#!/bin/bash
inotifywait -mrq /mnt/www/xxx --format "%w%f %e" -e modify,attrib,close_write,moved_to,moved_from,move,create,delete,delete_self,unmount | while read line
do
# echo $line
e=`echo ${line##* }`
f=`echo ${line% *}`
if [[ "$f" =~ "/mnt/www/xxx/patchs/" ]] || [[ "$f" =~ "/mnt/www/xxx/release/releases/" ]]; then
# 排除两个不需要同步的目录
continue
fi
if [[ ! -e "$f" ]]; then
continue
fi
if [[ "$e" =~ "MOVED_TO" ]] || [[ "$e" =~ "CLOSE_WRITE" ]] || [[ "$e" =~ "ATTRIB" ]] || [[ "$e" =~ "CREATE,ISDIR" ]]; then
rsync -a --delete-after $f f22@host1:$f
rsync -a --delete-after $f f22@host2:$f
elif [[ "$e" =~ "DELETE" ]] || [[ "$e" =~ "MOVED_FROM" ]]; then
rsync --delete -a $f f22@host1:$f
rsync --delete -a $f f22@host2:$f
fi
done
foreach unset 会加大内存占用
是for循环占用了内存
貌似真的变大了
不是错觉 真的会变大
Redis小知识
字符串:
一个字符串最大为 512M 字节。
列表:
LPUSH 命令用于插入一个元素到列表的头部,RPUSH 命令用于插入一个元素到列表的尾部。当这两个命令操
作在一个不存在的键时,将会创建一个新的列表。同样,如果一个操作会清空列表,那么该键将会从键空间 (key
space) 移除。这些是非常方便的语义,因为列表命令如果使用不存在的键作为参数,就会表现得像命令运行在一
个空列表上一样。
列表的最大长度是 2^23-1 个元素 (4294967295,超过 40 亿个元素)。
Redis 集合具有你需要的不允许重复成员的性质。多次加入同一个元素到集合也只会有一个拷贝在其中。实际
上,这意味着加入一个元素到集合中并不需要检查元素是否已存在。
哈希 / 散列 (Hashes):
每个哈希可以存储多达 223-1 个字段值对 (field-value pair)(多于 40 亿个)。
一个遍历stdClass导致的死循环
$std = new stdClass();
$std->a = 1;
foreach ($std as $key => $item) {
$name = "呵呵{$key}";
$std->$name = $item + 1;
}