简介
REmote DIctionary Server(Redis) 是一个key-value存储系统。
Redis是一个、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。
安装
redis服务安装:下载地址:https://github.com/dmajkic/redis/downloads
把redis的路径加到系统的环境变量里,这样就省得再输路径了;
这样
cmd直接输入 redis-server.exe打开服务端;
切换到redis目录下,输入命令 redis-cli,该命令会连接本地的 redis 服务。 在远程 redis 服务上执行命令 redis-cli -h host -p port -a password;
PHP 使用 Redis
环境:windows
确保已经安装了 redis 服务及 PHP redis 驱动,
安装 PHP redis 驱动:下载地址为:https://github.com/nicolasff/phpredis
(对不起,我实在康不懂这部分,呜呜呜~哇哇哇,太难过了)
查看php版本信息
其中,最主要的是Architecture,跟电脑的系统位数无关
下载php redis扩展包
到添加链接描述页面中下载对应的redis扩展包文件,需注意后面的x86必须跟php信息中的architecture一致
复制拷贝扩展文件
下载完后解压并复制目录下的php_redis.dll和php_redis.pdb文件
然后将文件粘贴到对应php版本安装目录下的ext文件夹下
在php.ini文件中加入
extension=php_redis.dll
参考:
window10 php如何安装redis扩展
Windows 环境下安装redis 及其PHP Redis扩展
我不知道按照官方给的方法该怎么安装扩展,呜呜呜,就是下面这样,不知道该怎么解决,以后再补充趴
报错:
解决:要将redis服务器打开后, 再试试redis测试语句。
key的设计
基础实例
$redis = new Redis();
2 //连接redis服务器
3 $redis->connect('127.0.0.1', '6379');
4
5
6 $key = "key";
7 $val = "val";
8
9 //redis key操作
10 $redis->exists($key); //判断key值是否存在
11 $redis->expire($key, 10); //设置key在10秒后过期
12
13 //redis string 字符串
14 $redis->set($key, $val);
15 $redis->incr($key); //key值+1,除非val是整数,否则函数执行失败
16 $redis->decr($key); //key值-1,同上
17 $redis->append($key, "ue"); //追加key值内容
18 $redis->strlen($key); //返回key值的长度
19
20 //当第一次设置key值后,key值的数据类型就不能改变了。
21 $redis->del($key); //删除key值
22
23 //redis hash 哈希
24 $redis->hset($key, 'field1', 'val1'); //设置一个key-value键值对
25 $redis->hmset($key, array('field2'=>'val2', 'field3'=>'val3')); //设置多个k-v键值对26 $redis->hget($key, 'field2'); //获取hash其中的一个键值
27 $redis->hmget($key, array('field2', 'field1')); //获取hash的多个键值
28 $redis->hgetall($key); //获取hash中所有的键值对
29 $redis->hlen($key); //获取hash中键值对的个数
30 $redis->hkeys($key); //获取hash中所有的键
31 $redis->hvals($key); //获取hash中所有的值
32 $redis->del($key); //删除key值
33
34 //redis list 列表
35 $index = $start = 0;
36 $redis->lpush($key, 'val1', 'val2'); //在list的开头添加多个值
37 $redis->lpop($key); //移除并获取list的第一个元素
38 $redis->rpop($key); //移除并获取list的最后一个元素
39 $stop = $redis->llen($key) - 1; //获取list的长度
40 $redis->lindex($key, $index); //通过索引获取list元素
41 $redis->lrange($key, $start, $stop); //获取指定范围内的元素
42
43 $redis->del($key);
44
45 //redis set 无序集合
46 $redis->sadd($key, 'val1', 'val2'); //向集合中添加多个元素
47 $redis->scard($key); //获取集合元素个数
48 $redis->spop($key); //移除并获取集合内随机一个元素
49 $redis->srem($key, 'val1', 'val2'); //移除集合的多个元素
50 $redis->sismember($key, 'val1'); //判断元素是否存在于集合内
51
52 $redis->del($key);
53 //redis sorted set 有序集合
54 //有序集合里的元素都和一个分数score关联,就靠这个分数score对元素进行排序
55 $redis->zadd($key, $score1, $val1, $score2, $val2); //向集合内添加多个元素
56 $redis->zcard($key); //获取集合内元素总数
57 $redis->zcount($key, $minScore, $maxScore); //获取集合内分类范围内的元素
58 $redis->zrem($key, $member1, $member2); //移除集合内多个元素