redis学习(一)
下載windows版本的redis:https://github.com/MSOpenTech/redis/releases
?我下的是3.2
安裝:然后解壓到自定義的文件夾中,我是按照菜鳥教程中在C盤新建一個redis目錄,然后將下載的文件解壓到新建的redis目錄中.
?
啟動:先啟動服務器端 ?在C盤redis目錄中打開命令窗口輸入命令:
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')); ?//返回集合中所有內容
?>
總結
以上是生活随笔為你收集整理的redis学习(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ThinkPhp5使用bootstrap
- 下一篇: phpstorm配置Xdebug