redis学习(一)

下载windows版本的redis:https://github.com/MSOpenTech/redis/releases

 我下的是3.2


安装:然后解压到自定义的文件夹中,我是按照菜鸟教程中在C盘新建一个redis目录,然后将下载的文件解压到新建的redis目录中.

 

启动:先启动服务器端  Credis目录中打开命令窗口输入命令:

redis-server.exe redis.windows.conf

出现如下界面说明redis服务气端安装成功

 

 

 

再重新打开一个命令窗口输入命令

redis-cli.exe -h 127.0.0.1 -p 6379

用来启动客户端,出现如下界面表示连接成功

 

Redis数据类型有5

1. string(字符串类型)

 

 

 

2. Hash(哈希)

 

只是键就得不到,只是测试

3. List(列表)

 

4. Set(集合)

 

一.添加的时候出现错误(error) WRONGTYPE Operation against a key holding the wrong kind of value

是因为键名重复,将其键名称改一下或者将前面的runnob删除

.redis虽然被添加2次,但根据集合内元素的唯一性,第二次插入的元素将被忽略

 

 

5. Zset(有序集合)

 

 

还有一个特殊的Hyperloglog(用于计算元素的数量,不保存元素的值)

 

注意,’单引号也是可以的

 

 

删除键

Del 键名

 

 

 

发布订阅

 SUBSCRIBE redisChat   创建了订阅频道名为 redisChat:

 

重新开启个 redis 客户端在同一个频道 redisChat 发布两次消息,订阅者就能接收到消息

PUBLISH redisChat "Redis is a great caching technique"

 

 

客户端

 

 

 

事务

 

 

get不能小写

脚本

Redis 脚本使用 Lua 解释器来执行脚本

EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second

 

 

Redis 数据备份与恢复

Redis SAVE 命令用于创建当前数据库的备份。

 

如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。获取 redis 目录可以使用 CONFIG 命令

创建 redis 备份文件也可以使用命令 BGSAVE,该命令在后台执行。

 

 

安全

CONFIG get requirepass

查看是否设置了密码验证

 

默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验证就可以连接到 redis 服务。

 

CONFIG set requirepass "123456"

 

使用如上命令设置密码,

 

设置密码后,客户端连接 redis 服务就需要密码验证,否则无法执行命令。

127.0.0.1:6379> AUTH password

 

 

 

 

 

 

 

Phpredis下载:http://pecl.php.net/package/redis/3.1.6/windows

编辑apache 的php.ini扩展自己添加

 

 

 

重启apache,查看phpinfo()出现如下界面表示成功

 

 

测试:

在根目录下新建一个test.php

<?php

   //连接本地的 Redis 服务

   $redis = new Redis();

   $redis->connect('127.0.0.1', 6379);

   $redis->auth('123456');  //没有密码可以不用这句,还有一种方法就是要删密码进入redis安装目录修改redis的配置文件,即redis.windows.conf中删除requirepass 123456”就可以了

   echo "Connection to server sucessfully";

   //设置 redis 字符串数据

   $redis->set("tutorial-name", "Redis tutorial");

   // 获取存储的数据并输出

   echo "Stored string in redis:: " . $redis->get("tutorial-name");

?>

 

 

 

在浏览器中访问出现如下界面表示成功

 

 

 

设置redis服务器端开机自启动

redis-server.exe --service-install redis.windows.conf

然后再服务中就可以看到如下界面

 

 

此时服务是关着的,自己手动启动一下。等到下次开机时自动启动


推荐一篇blog挺好的:https://www.cnblogs.com/aipiaoborensheng/p/5666005.html

/***************************************************************代码测试*****************************************************************/


<?php
header('Content-type:text/html;charset=utf-8');
$redis = new redis();
$redis->connect('127.0.0.1',6379);
$redis->auth('123456');
//字符串类型
//$redis->set('test','1111111');//设置key和value的值


/*
$result = $redis->get('test');//获取key的值
var_dump($result);
$redis->delete('test');
var_dump($redis->get('test'));
*/




/*
$redis->setnx('test',"22222");//所谓 SETNX,是「SET if Not eXists」的缩写,也就是只有不存在的时候才设置
echo $redis->get('test');
*/
//var_dump($redis->exists('test'));//判断键是否存在
//$redis->set('test',123);
//$redis->incr('test');  //递增键的键值
//$redis->decr('test');//递减键的键值
//$redis->set('test1',11111);
//$redis->set('test2',22222);
//$result = $redis->getMultiple(['test1','test2']);//取得所有指定键的值
//echo $redis->get('test');
//var_dump($result);
//$redis->delete('test');
//var_dump($redis->lpush('test','1111'));//列表头部添加字符串值
//var_dump($redis->rpush('test','2222'));//由列表尾部添加字符串值
$redis->delete('test');
//$redis->lpush("test","111");  
//$redis->lpush("test","1111");  
//$redis->lpush("test","11111");  
//$redis->lpush("test","111111");  
//var_dump($redis->lpop("test")); //返回和移除列表的第一个元素
//var_dump($redis->lsize("test"));//返回的列表的长度
//var_dump($redis->lget('test',1));//返回指定键存储在列表中指定的元素。
//var_dump($redis->lset('test',1,'xiugai'));
//var_dump($redis->lget('test',1));//为列表指定的索引赋新的值,若不存在该索引返回false.
//var_dump($redis->lgetrange("test",0,-1));//返回在该区域中的指定键列表中开始到结束存储的指定元素
//var_dump($redis->lremove('test','111',3));//从列表中从头部开始移除count个匹配的值
//var_dump($redis->lgetrange("test",0,-1));
/*
$redis->delete('test');
var_dump($redis->sadd('test','aaa'));
var_dump($redis->sadd('test','bbb'));
var_dump($redis->sort('test'));
*/
/*
$redis->delete('test');  
$redis->sadd('test','111');  
$redis->sadd('test','112');  
$redis->sadd('test','113');  
var_dump($redis->scontains('test', '111'));//检查集合中是否存在指定的值。
*/
/*
$redis->sadd('test','111');  
$redis->sadd('test','112');  
echo $redis->ssize('test'); //返回集合中存储值的数量
*/
/*
$redis->sadd("test","111");  
$redis->sadd("test","222");  
$redis->sadd("test","333");  
var_dump($redis->spop("test")); //随机移除并返回key中的一个值
*/


$redis->sadd("test","111");  
$redis->sadd("test","222");  
print_r($redis->smembers('test'));  //返回集合中所有内容


?>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值