前言:数据库是一切数据的源头,因此我们没有逃避的理由
(一) 什么是redis?
redis是nosql(not noly sql)产品中最为出色的一种非关系型的数据库,主要包括以下几种存储结构:String,list,set,hash,sorted set,为高并发而生,其中读的速度为110000次/秒,写的速度是81000次/秒,
(二) 安装方式
Linux : yum install epel-release(如果错误应该执行这个步骤,没有就跳过) -----> yum -y install redis ----->启动服务同时执行redis-cli
Windows: https://pecl.php.net/package/redis 下载扩展包放入到PHP中开启扩展就行(注意要查看是不是nts/ts)下载相应的版本
(三) 数据类型的详解
1.String(字符数据类型)
get 键名 //获取对应键名的值 如果不存在返回null
set 键名 值 //设置对应键名的值
set 键名 值 [过期时间/秒] //设置超时的时间
2.
hset 哈希表名的名称 字段(key) 字段值(value) [超时时间/s] //设置一个值
hget 哈希表的名称 字段名称(key name) //获取一个值
hmset 哈希表的名称 字段(key) 字段值(value)..... //一次性设置多个值也可以用这个修改数据
hgetall 字段(key) //获取这个键名的所有值即这一条数据
3.list(链表数据类型)
lpush 链表的名称(栈名称) 值 //这个和入栈的模式相关,先进看不出,后进先出
rpush 链表的名称(队列) 值 //这个和队列相关,先进先出,后进后出
lrange 链表的名称 索引开始位置 索引结束位置(-1 代表获取到全部) //这个是查询相关的操作
lpop 链表名称 //弹出(栈或者队列)头部的元素,并且删除,常用这个进行秒杀的功能
rpop 链表名称 //弹出(栈或者队列)尾部的元素,并且删除,常用这个进行秒杀的功能
ltrim 链表名称 开始的位置 结束的位置 //让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
4.
sadd 集合的名称 集合的元素1.... //新增集合元素
smembers 无序集合的名称 //获取集合中的值
sdiff 作为标准的集合名称 求差集的集合名称 //求两个集合之间的差集
sinter 集合名称1 集合名称2 //求两个集合的交集
sunion 集合名称1 集合名称2 ... //求两个集合的并集
scard 集合名称 //求集合的元素的个数
srem 集合名称 元素名称 //用于删除无序集合中的元素,在社交网络开发中用于黑名单功能
5.zset集合数据类型(有序集合)
zadd 集合名 序号 元素 // 向有序集合中添加元素。如果该元素存在,则更新其顺序。
zrange 集合名称 开始位置(索引) 结束位置(索引)(-1 获取全部) //按序号升序(由小到大)获取有集合中的内容
zrevrange 集合名称 开始位置(索引) 结束位置(索引)(-1 获取全部) //按序号降序(由大到小)获取有序集合中的内容
(四) 通用操作
keys * //获取数据库中的所有的数据
exists 键名 //判断键名是否存在
select index(0-9) //选择数据库的空间段
del 键名 //删除指定的键名
type 键名 //查找键名对应的数据类型
expire 键名 有效期(秒数) //设置超时的时间
ttl 键名 //查看一个 key 的过期剩余时间
(五) redis中的密码登录设置
1. 打开redis.conf 2.查找到foobared 设置成requirepass 密码
3.登录
redis-cli -a 密码
(六) redis持久化设置
分类:rdb(默认,在间隔固定时间进行保存),aof(修改就保存)
设置成aof模式:
1.打开redis.conf 2.修改 appendonly no 变成yes 3.保存数据的文件名 appendfilename "文件路径"
(七) PHP中使用redis操作
使用前必须确认开启了redis扩展为php
1.php连接redis数据库 $redis = new Redis(); $redis->connect(ip地址,端口); $redis->auth(密码);
2.操作字符数据类型
$redis->set(key,value) //设置值
$redis->set(key) //获取值
3.操作hash类型
$redis->hSet(key,字段名,value); //设置值
$redis->hGet(key,字段名); //获取值
4.操作set无序集合
$redis->sAdd(key,value); //设置值
$redis->sMembers(key) //获取值
5.操作zset有序集合
$redis->zAdd(key,index,value); //设置值
$redis->zRange(key,0,-1) // 升序排序
$redis->zRange(key,0,-1,true) // 让键与值互换
6.操作链表list
$reids->lpush(key,value) //设置按照栈的方式入列
$reids->rpush(key,value) //设置按照队列的方式入列
$redis->lpop() //从头部出列并且删除
$redis->rpop() //从尾部出列并且删除
$redis->lRange(key,start,end) //读取链表的值