文章目录
redis
redis 单进程单线程 非阻塞IO
端口:memcache 11211 redis 6379
Redis安装报错解决办法 原因GCC版本太低
https://blog.csdn.net/qq_40310224/article/details/109706990
安装步骤
https://www.cnblogs.com/heqiuyong/p/10463334.html
redis可以有远程客户端图形化连接
连接不上原因 可能原因是 防火墙 需要安全组打开相应端口
redis五种数据类型
字符串
-
keys * 查看所有键
-
exists [key] 键是否存在
-
dbsize 查看键个数
-
flushdb 清除数据库 flushall 清除全部 慎用
-
select [num] 选择第几个数据库
-
set key value ex/px nx/xx 存值 过期时间 存在不增加/存在替换
-
ttl key 查看是否有过期时间
-
type key 查看类型
-
加m mset mget…一次获取多个
-
incr key 自增 decr key 自减 incrby key 10 decrby key 10 多个
-
append key value 追加值
-
getset key value 获取旧的设置新的
列表–队列
- lpush/rpop key 左进右出
- llen key 查看列表长度
- lrange key startIndex endIndex
- rpush/lpop key 右进左出
- ltrim key sindex eindex 截取区间内的元素
- rpoplpush oldlist newlist 把一个列表的右边弹出元素存到另一个列表的左边进去
哈希–关联数组
关联数组 存储数据表的一条记录
命名规范 表名:主键字段名:值
- hset key field value 设置 hget key fidld 获取
- hmset key f1 v1 f2 v2 设置多个
- del key 删除/hdel key field 删除单个字段
- hmget key f1 f2获取多个/ hgetall key获取全部值
- hlen key 获取个数
- hexists key field 获取单个字段是否存在
- hincrby key field 1 自增1
- hkeys key 获取字段名
- hvals key 获取值
集合
无序
redis的set是无序集合,不允许重复元素,最大放2的32次方-1个元素
场景:存放用户ID 不重复信息 抽奖 好友关系
- sadd key value1 value2 向集合key中添加元素
- smembers key 返回所有元素
- srem key value 删除指定元素
- spop key value 随机删除一个元素
- sismember k v 判断是否存在
- smove a b v a移动元素到b
- sinter/sunion/sdiff 交集/并集/差集 差集是以k1为主 k2的不会出现
有序
相比无序多了一个分值排序
- zadd k score v s1 v1 添加多个元素
- zrem k v 删除指定元素
- zrange/zrevrange k sindex eindex withscores 按正倒序取出区间元素并显示分值
- zremrangebyscore k sindex eindex 按分值删除元素
- zcard key 返回元素个数
- zcount k sindex eindex 统计区间个数
- zscore k v 查询分值
- zincrby k s v 分值自增1
发布与订阅
- subscribe name 订阅频道
- publish name 发布频道
- psubscribe name* 订阅以name开头发布频道时只要name开头均可收到
持久化操作
保存的2种方式
-
快照rdb 自动 在配置文件342行 修改保存路径
默认有三种快照
-
aof日志 手动 搜索 appendonly 开关
有三种保存机制 推荐一秒钟存一次
服务挂掉后 启动时优先读取aof在rdb
事务
支持简单事务 当同一个操作多个命令要么都成功要么都失败
- multi 开始事务 将把接下来的命令放到队列中
- discard 回滚
- exec 提交 命令没错,逻辑错了会提交成功 不足之处
- watch 监听key是否有改变 有改变的话事务就不执行
验证
- 在redis配置文件中进行IP限制
- 启用密码 auth pwd – 配置文件搜索requirepassword
redis主从设置
1主服务器 开启rdb和aof日志、密码认证登录
2.修改 从服务器 的配置文件
主从同机的话修改1-6,不同机修改5-6即可
- 修改端口号
- 关闭aof日志
- 修改pid
- 修改rdb名称
- replicaof ip port 从服务器连接主服务器ip和端口
- masterauth password 从服务器连接主服务器密码
扩展安装
windows下安装扩展
官方扩展库: https://pecl.php.net/package/redis
phpredis 对应原生
predis 对应框架
1.通过phpinfo 查看PHP版本、TS/NTS
2.点击DLL下载对应的扩展并解压
3.放在PHP安装目录下的ext文件夹
4.在php.ini 加上 extension=php_redis.dll
5.重启web或php-fpm
Linux下安装扩展
yum安装
1.查询支持的扩展 yum search redis|grep ^php
2.安装指定的扩展 yum install -y php72w-pecl-redis.x86_64
源码安装
1.下载 wget http://pecl.php.net/get/redis-5.0.2.tgz
2.解压 tar zxf redis-5.0.2.tgz
phpredis扩展: https://blog.51cto.com/leezhxing/1316930
php安装拓展之phpize方式安装: https://blog.csdn.net/diyiday/article/details/85049702