標籤:

redis的初級使用

一.什麼是redis?

Redis 是一個高性能的key-value資料庫。分為客戶端和服務端,最重要的一點是他是基於內存的,也就是所有的數據都存儲在內存中,比像MySQL這種將數據存儲於硬碟中的資料庫性能要高非常多倍,另外redis是非關係型資料庫。

二.安裝redis服務端

聲明:redis官方說並沒有正式支持Windows,但是卻開發了Windows版,基於大多數的項目都是在Linux下部署,並且Windows不斷被爆出遭到黑客入侵的新聞,本次將放棄說明關於Windows下redis下的安裝和使用,但是大同小異,並不需要為沒有說明而感到苦惱。本次演示的將是在centos6.3版本下的安裝及使用。

官網地址:

https://redis.io/n

說明:本次演示的是redis-2.8.13版本,截止到目前,官網最新的版本是4.0的測試版,穩定版為3.2.9,.有需要的可以下載自己需要的相應的版本,還有下載的為redis的源碼,所以需要Linux本身已經安裝好了gcc和tcl.,這裡給出安裝命令n

1.安裝gcc

yum list gccnyum install gcc.i686 -yn

2.安裝tcl

yum list tclnyum install tcl.i686 -yn

下載redis

wget http://download.redis.io/releases/redis-2.8.13.tar.gzn

安裝redis

進入下載的目錄,解壓redis安裝包並安裝

tar xzf redis-2.8.13.tar.gzncd redis-2.8.13nmakencd srcnmake installn

安裝完成後,通過whereis 或者which都可以查看 redis-server的安裝位置,例如

whereis redis-servern

修改redis配置文件

cd redis-2.8.13ncp redis.conf /home/guojiadong/config/redis/nvim /home/guojiadong/config/redis/redis.confign

找到 daemonize no,把no改為yes,這個選項的意思是我們要讓redis在後台啟動,接著我們找到port 6379 修改默認的埠號,改為7200,這是為安全性考慮。

啟動redis-server

redis-server /home/guojiadong/config/redis/redis-servern

因為我們剛剛修改了默認的配置文件讓redis-server在後台啟動,所以上面這條命令執行完對於感官上我們無從感知,我們可以用以下命令查看是否啟動。

ps aux|grep redis-servern

以下為我截圖,

被我圈出來的部分說明redis已經啟動,並且埠是7200,先在讓我們通過redis的客戶端來操作redis吧

redis客戶端的使用

按照正常的邏輯我們這個時候輸入redis-cli就可以了,但是redis-cli默認的是6379埠,也就是之前我們在修改配置文件的時候修改的port參數,所以我們就需要輸入以下命令來啟動我們的redis-cli

redis-cli -h 127.0.0.1 -p 7200n

連接成功,擴展:可以使用

infon

查看當前redis的內容,包括配置,版本,內存等等。

三.redis的五種數據類型

1).String 可以是字元串、整數或浮點,統稱為元素

2).list 一個序列集合且每個節點都包好了一個元素

3).Set 各不相同的元素

4).Hash 有key-value的散列組,其中key是字元串,value是元素

5).Sort-Set 帶分數的score-value有序集合,其中score為浮點,value為元素

四.使用redis

1.操作string

set zifuchuan guojiadong //設置字元串nget zifuchuan //獲得剛剛設置的字元串n

以下為截圖

通過剛剛這兩條命令我們就將一個key為zifuchuan,value為guojiadong的值存貯到了redis中並且獲得了zifuchan的value

sting類型操作整形

set zifuchuan2 3 //甚至string類型的value為3nincr zifuchuan2 //讓剛剛設置的value自增1ndecrby zifuchuan2 2 //讓value值減2n

2.redis操作list

list類型是一個有序的列表,是從左到右還是從右到左,他允許從左或者右都可以進行推入和彈出,他並不要求值是不同,如果從左到右,那麼就相當於我們常說的隊列,也就是遵循先入先出

lpush list1 12 //從左邊推入元素nrpush list1 12 //從右邊推入元素nlpop list1 //從左邊推出元素nrpop list1 //從右邊推出元素nllen list1 //列出list1中元素的個數n

3.redis操作set

set要求數據都是唯一的,相同的值是不能被插入2次及以上的

sadd set1 12 //插入12到set1中nscard set1 //返回當前set1中元素的個數nsismember set1 12 //判斷12是否在set1這個集合中,返回1說明在,返回0說明不在nsrem set1 12 //將12從set1中刪除n

4.redis操作hash

hash允許多個鍵值對存貯在一個key中

hset hash1 key1 12 //向 hash1中插入key為key1,value為12nhset hash1 key2 13 //向hash1中插入key 為key2,value為13nhget hash1 key1 //獲得hash1中key1的valuenhlen hash1 //查看hash1中有幾個元素nhset hash1 key1 14 //直接修改hash1中key1的value,即使之前已經設置,會直接覆蓋nhmget hash1 key1 key2 //一次獲取hash1中key1和key2的值,會根據key1和key2的順序返回,順序不同,返回結果也不同n

5.redis操作sort set

要求分數為浮點型,方式:score value,還有一個隱藏的rank,rank排序如果出現score相同,那麼安裝value值的字典排序來排序(a,b,c...1,2,3....)

zadd zset1 10.1 val1 //增加score為10.1,value為val1到zset1的映射nzadd zset1 9.1 val2 //增加score為9.1,value為val2到zset1的映射nzcard zset1 //查看zset1中元素的個數nzrange zset1 0 2 withscores //按照排名0到2把分數一起列印出來nzrank zset1 val2 //指定val2查看當前排名n

五.PHP安裝redis擴展

1.產看當前是否已經安裝redis擴展

php-m //會列出所有安裝的php擴展,找不到說明沒有安裝n

2.檢測安裝環境

檢測是否安裝phpize和php-config,檢測命令

which phpize //如果顯示路徑表示已經安裝nwhich php-config //如果顯示路徑表示已經安裝n

如果提示no....表示未安裝,可以通過下面命令安裝

yum list php-devel //php擴展開發包,包含擴展所需要的工具nyum install php-devel.i686 -yn

安裝完成提示Complete!

下載redis並安裝redis

git clone https://github.com/phpredis/phpredis.gitncd phpredis //生成configurenphpizen./configure --with-php-config=/usr/bin/php-confignmakenmake installn

修改php.ini的配置文件

小技巧查看php.ini配置文件所在位置

php --inin

也可以使用whereis php.ini來查看

vim /etc/php.inin

添加一行

extension=redis.son

保存退出,重啟php-fpm即可,我們的redis已經安裝完成了。

六.PHP操作redis

redis文檔地址

https://github.com/phpredis/phpredisn

這裡對於操作redis只做簡要的說明,具體的可以參考redis在github上的文檔

<?phpn$redis = new Redis();//實例化redisn$redis->connect(127.0.0.1,7200);//連接7200埠n$redis->set(zifuchuan,guojiadong);//設置zifuchuan為guojiadongn$redis->get(zifuchuan);//獲取zifuchaun的值n

以上就是redis的基本操作的全部內容了。


推薦閱讀:

http:文件上傳背後發生了什麼?
為什麼C++ 程序員看不起php?
現在國內中小型的IT行業的公司,asp.net和php哪個應用得比較普遍?
評論或文章里添加@用戶名,被@用戶可以收到通知的功能怎麼實現?
前端工程師學 Node.js 好還是 PHP 好?

TAG:PHP | Redis |