redis基本命令


redis簡介:

redis的同類型產品(memcachemongodb

緩存數據庫(非關系型數據庫):Remote Dictinoary server(內存告訴緩存數據庫)

C語言編寫,key-value

好處:支持豐富的數據結構:stringlisthash====master/slave主從、數據的持久化

為什么使用:高速讀取數據、減輕數據庫負擔、集合計算功能、多種數據結構支持

使用場景:

高並發場景、防攻擊、熱門話題

二、redis的安裝、使用

2.1服務端的安裝

windows:下載軟件包

cd   E:\wamp\redis   =è  redis-server redis.conf

linux: 編譯

2.2客服端在調用

2.2.1 直接通過redis-cli來訪問redis服務端

cd  E:\wamp\redis   =è redis-cli –h 127.0.0.1 –p 6379

set(設置key):  SET key value [ex過期秒數] [px 過期毫秒數] nx xx

nx :只有鍵不存在時,才對鍵進行設置操作

xx:只有鍵已經存在時,才對鍵進行設置操作

get(讀取數據)GET key

2.2.2 phpredis

下載地址:http://pecl.php.net/package/redis

windows: 直接下載(php_redis-3.1.2-7.0-ts-vc-14-x86)

$redis = new redis();
$redis->connect( '127.0.0.1', 6379 );
$redis->set( 'packphp', '666777' );
//ctrl+左鍵 跟蹤代碼   ctrl+o  顯示類的方法
$handsome = $redis->get( 'packphp' );
var_dump( '<pre>', $handsome );exit;

linux: phpize編譯安裝

三、redis的數據結構

3.1、存儲方式

Keys:給存儲在redis內存中的數據起的變量名字

命名規范:空格、\n 不能使用

取名:簡短、有意義(sixstar:teacher:hansome

values: Strings  Lists  Sets  Sorted sets   Hash

3.2string類型

存儲任何數據:通過序列化來存儲,serialize   unserialize      序列化    反序列化持久化的memcache

操作方法:

set( key, value)   設置值      get( key)

mset( $array )    一維數組(一次設置多個元素的值)

mget( $array )   一次獲取多個值

incr   key做自增,返回新的值

decr key做自減,返回新的值

incrby’key’,  value)    加指定值 $redis-> incrby( pack,  100 );

decrby()    減指定值

append()   給指定key的字符串值追加value

substr( $key, $start, $end )    字符串截取

3.3List

list類型:雙向鏈表。通過push,pop操作從鏈表的頭部或者尾部添加刪除元素

list既可以用作棧,也可以用做隊列

lrange( key,start,end);  讀取指定區間的元素,從0開始索引

lpush( key, val1, val2,…valn);     key對應的頭部添加字符串元素    

rpush(key, val1, val2,…valn );  在key對應的尾部添加

$redis->lpush( 'packpython1', 'shell', 'linux', 'oracle');
$redis->rpush( 'packpython1', 'mui','mui1','mui2');

lpop( ‘key’)  list的頭部刪除元素, 並返回被刪除的元素

rpop(‘key’) list的尾部刪除元素, 並返回被刪除的元素

llen()   返回list長度

ltrim( key, start , end ); 截取list,保留指定區間元素

3.4  Set(Set)  string類型的無序集合(232次方-1)

操作方法:添加、刪除、並集、交集、差集

sAdd( key, value1,value2,….valuen)添加一個string元素到key對應的set集合中

sMembers( key );  返回key對應set的所有元素,結果是無序的

sRem( key, val1 ) 移除指定元素(value

scard( key ); 返回set元素的個數

sismember( key, val  ) 判讀key的集合中是否存在元素val

sinter( key1, key2 )   返回所有給定的set(集合)的交集

sunion( key1, key2 ) 返回所有給定的set(集合)的並集

sdiff( key1, key2 ) 返回所有給定的set(集合)的差集

3.5 Sort Set string類型的元素的集合

每一個元素都會關聯一個權,通過權值可以有序的獲取集合中的元素

zAdd( key, score, value1, score2, value2 )  添加元素到集合,如果元素在集合中存在更新對應score

zCard( key );   返回集合中元素個數

zScore( key, value );  返回給定元素的score

zRem( key, val );  刪除指定元素(元素值)

zRemrangebyrank( key, score1, score2 ); 刪除集合中排名(權重)在給定區間的元素

zRange( key, start, end )  從集合中返回指定區間(索引),返回按自增排序的數組

zRangebyscore(key, start, end )  從集合中返回指定區間(權重值),返回按自增排序的數組

zRevrange() 同上,降序排序

zRevrangebyscore() 同上,降序排序

zIncrby( key, ++score, val ) 增加某個val的權重值

3.6hash(h)

hSet( ‘key’, ‘hashkey1’, val1 ) 設置key的某個hashkey1val1

hGet( ‘key’, ‘hashkey1’ ) 讀取keyhashkey1的值

hMset( ‘key’, ‘arr’) 設置key下多個hashkey的值(通過arrkey(hashkey)對應到val(hashval)

hMget( ‘key’, ‘arr’ )   讀取key下多個hashkey的值(arrvalue值為hashkey

hDel( ‘key’, ‘hashkey1’,’hashkey2=null’,’hashkey3=null’) 刪除key下指定hashkey1的值

hIncrBy( ‘key’, ‘hashkey1’, int number) key下指定的hashkey1增加整型數值

hIncrByFloat( ‘key’, ‘hashkey1’,float number) key下指定的hashkey1增加金額

hLen( ‘key’); 獲得key下的field個數

hGetall( ‘key’);  返回指定key的數據結果(返回所有的fieldvalue

hKeys( ‘key’); 返回指定key下的所有field

hVals(‘key’); 返回指定key下的所有value


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM