日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

redis学习(一)

發布時間:2024/9/30 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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')); ?//返回集合中所有內容


?>

總結

以上是生活随笔為你收集整理的redis学习(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。