redis5.0 知识点一

1、redis的重要配置项
2、stream数据类型
3、help子命令
4、更方便的搭建redis集群
5、新的Sorted Set命令
6、如何整理内存碎片和如何查看内存报告

======12项新特性======
1、新的Stream数据类型。
2、新的Redis模块API:Times and Cluster API。
3、RDB现在存储LFU和LRU信息。
4、集群管理器从Ruby(redis-trib.rb)移植到C代码。
5、新sorted set命令:ZPOPMIN/MAX和阻塞变种。
6、主动碎片整理V2。
7、增强HyperLogLog实现。
8、更好的内存统计报告。
9、许多带有子命令的命令现在都有一个HELP子命令。
10、客户经常连接和断开连接时性能更好。
11、错误修复和改进。
12、Jemalloc升级到5.1版。

======stream数据类型======
本质是一个抽象日志
redis现有String、List、Hash、Set、Sort Set、Stream 6种数据类型
1、其他5种数据结构类型不能显示的需求,可直接用stream实现。
2、直接贴近业务需求,提升开发效率。
3、物联网,各种传感器产生时间序列数据,定位未来。

使用redis watch 实现秒杀,抢购避免出现超卖

涉及抢购、秒杀、等活动时,网站访问人数会骤然上升,为了避免超卖,我们要怎么来解决这个问题呢?

采用redis乐观锁-watch

pconnect('127.0.0.1', '6379', 5);

$user = random_int(123456,999999);
$redis->watch('gou');
$gou = (int)$redis->get('gou');
if($gou < 10){ $redis->multi();
$redis->incr('gou');
$res = $redis->exec();
if($res === true){
$redis->lPush('success_list', $user);
}else{
//失败处理
}
}else{
//失败处理
}

编译安装hiredis


wget https://github.com/redis/hiredis/archive/v0.13.3.tar.gz
tar zxvf v0.13.3.tar.gz
cd hiredis-v0.13.3

make -j
mkae install
sudo ldconfig


swoole 启用异步Redis客户端
编译swoole时,在configure指令中加入--enable-async-redis


./configure --with-php-config=/usr/local/php/bin/php-config --enable-async-redis
make clean
make -j
make install

==坑
1、swoole 安装后 php -m出现错误:
libhiredis.so.0.13: cannot open shared object file: No such file or director
解决办法:
在/etc/ld.so.conf 加入一行
/usr/local/lib

ldconfig
然后重新编译swoole

最后php --ri swoole 查看async redis client => enabled 恭喜你,成功了

redis 安装

redis 官网 http://redis.io

===安装===
yum -y install gcc gcc-c++ libstdc++-devel
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar -zxvf redis-5.0.5.tar.gz
cd redis-5.0.5
make
===运行===
cp /data/src/redis-5.0.5/redis.conf /etc/redis/
vim /etc/redis/redis.conf
;开启
deamonize on

redis-server /etc/redis/redis.conf

===开机自启动===
echo "redis-server /etc/redis/redis.conf" >>/etc/rc.local
===设置密码(需要重启redis才能生效)===
CONFIG get requirepass
CONFIG set requirepass “****”
设置后访问
redis-cli -h 127.0.0.1 -p 6379 -a ****
===关闭===
redis-cli shutdown
===修改 Redis 服务运行账号===
useradd -M -s /sbin/nologin [username]

===安全参考===
https://help.aliyun.com/knowledge_detail/37447.html