Redis在Linux中的安裝、基礎應用

更新中...

目錄

更新中...

一、安裝

二、基礎

三、Redis常用5大數據類型

四、常用指令

Redis鍵(key)

Redis字符串(String)

Redis列表(List)

Redis集合(Set)

Redis哈希(Hash)

Resis集合Zset(sorted set)


一、安裝

1,一般軟件包在/opt目錄下,所以先cd /opt目錄

 2,下載安裝包到opt目錄,並解壓

wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar xzf redis-5.0.3.tar.gz

3, 進入 redis-5.0.3目錄,執行make命令(已經安裝gcc編譯器前提下)

cd redis-5.0.3
make

 4,make完執行make install安裝

5,進入cd /usr/local/bin目錄可以看到生成的文件

 6,在/目錄下創建myredis目錄來存儲redis.conf文件

7,去opt目錄下的redis目錄中備份redis.conf文件,不影響源文件

8,修改myredis目錄下的redis.conf配置文件

改no爲yes,這樣控制檯關閉還會在後臺運行

9,查看進程,否有啓動redis

方式一:如下圖還未啓動

方式二: lsof -i:6379

如圖未啓動

 10,redis-server /myredis/redis.conf 啓動

 11,連接Redis,ping返回PONG代表啓動成功

打開redis終端:redis-cli

 12,測試鍵值對數據

13,單元測試效率

redis-benchmark

結果,每秒鐘4萬

14,關閉

二、基礎

1,查看配置文件,看到默認有16個庫

選擇庫

2,查看庫的key數量

DBSIZE

3,列出當前庫的所有key值

keys *

4,刪除key

FLUSHDB:刪除當前庫的所有key

FLUSHALL:刪除16個庫的所有key
 

 

 

 

 

 

 

 

 

三、Redis常用5大數據類型

String(字符串)、Hash(哈希)、List(列表)、Set(集合)和Zset(sorted set:有序集合)

1,String

一個key對應一個value。

string類型是二進制安全的,意思是redis的string可以包含任何數據,比如jpg圖片或者序列化的對象。

string類型是redis最基本的數據類型,一個redis中字符串value最多可以是512M。

2,Hash

Hash是一個鍵值對集合,是一個string類型的field和value的映射表,hash特別適合用於存儲對象

類似於Java的Map<String,Object>

3,List

單值多value

List是簡單的字符串列表,安裝插入順序排列,你可以添加一個元素導列表的頭部(左邊)或者尾部(右邊)。

它的底層實際是個鏈表

4,Set

Set是string類型的無序集合,它通過HashTable實現的。

5,Zset

zset和set一樣也是string類型元素的集合,且不允許重複的成員

不同的是每個元素都會關聯一個double類型的分數。

redis正是通過分數來未集合中的成員進行從小到大的排序。zset的成員是唯一的,但是分數(socre)卻可以重複。

 

四、常用指令

  • Redis鍵(key)

1,判斷key是否存在

存在返回1,不存在返回0

2,移動k1到2號庫

move k1 2

3,查看鍵值對活多久

-1 永不過期

 

設置k2活10秒:EXPIRE k2 10

還剩下6秒

-2已經過期

4,查看key類型

type key

庫中存在key則更新值

  • Redis字符串(String)

1,set/get/del/append/strlen/

2,Incr/decr/incrby/decrby一定要是數字纔可以進行加減

Incr/decr:加1/減1

incrby/decrby:加指定值

3,getrange/setrange

範圍內截取字符串/設置字符串

4,setex/setnx

設置過期時間/存在不設置值

5,mset/mget/msetnx

設置多個值/獲取多個值/設置多個值,只要有一個已經存在就不插入

  • Redis列表(List)

1,lpush/rpush/lrange

lrange list01 0 -1//讀取list01表,-1表示到結束

lpush list01 1 2 3 4 5//往list01裏添加5個數據。左邊的是怎麼進去倒着出來

rpush list02 1 2 3 4 5//往右邊的是怎麼進去怎麼出

2,lpop/rpop

彈出棧頂或者棧底

3,lindex

按照索引下標獲取元素(從上到下)

4,llen

獲取列表長度

5,lrem key

刪N個value

如下刪除2個3

6,LTRIM

截取出內容再賦值給原來的列表

7,rpoplpush

RPOPLPUSH 源列表 目的列表

 

8,lset key index value

設置某個位置的值

9,linsert key before/after 值1 值2

將某個值插入到某個值的後面

list總結

是一個字符串鏈表,左右都可以插入;

如果鍵不存在,則創建,存在則更新內容;

如果值全部移除,對應的鍵也就消失了;

鏈表的操作無論是頭和尾效率都極高,但是對中間的操作效率就很低。

  • Redis集合(Set)

單值多value

1,sadd/smembers/slsmember

sadd:添加集合,會去除重複的

smembers:查看集合

slsmember:判斷值是否存在

2,scard獲取集合裏面的元素個數

3,srem key value 刪除集合中元素

4,srandmember key 某個整數(隨機出幾個數字)

比如100個人,抽10個人中紅包

5,spop key 隨機出棧

6,smove key1 key2 在key1裏的某個值     作用是將key1的某個值賦給key2

7,數學集合-

差集sdiff

 以第一個集合爲準,set2與set1對比,差什麼就顯示出來

交集sinter

與第一個的交集

並集sunion

與第一個的並集

  • Redis哈希(Hash)

KV模式不變,但V是一個鍵值對

1,hset/hget/hmset/hmget/hgetall/hdel

hset:

hset user id 11

hget:

hget user id

hmset:

hmset customer id 1 name lisi age 20

hmget:

hmget customer id name age

hgetall:

獲取所有的鍵值對

hgetall customer

hdel:

刪除鍵值對

hdel user name

2,hlen

獲取鍵值對個數

3,hexists key  在key裏面的某個值的key

存在爲1,不存在爲0

4,hkeys/hvals

hkeys:獲取所有的key名稱

hvals:獲取所有的values值

5,hincrby/hincrbyfloat

hincrby:整數加

hincrbyfloat:浮點數加

hset student1 score 92.3

6,hsetnx

不存在則插入,存在則不操作

  • Resis集合Zset(sorted set)

在set基礎上,加一個score值,之前是k1 v1 v2 v3

現在zset是k1 score1 v1 score2 v2

1,zadd/zrange

zadd:

zadd zset01 60 v1 70 v2 80 v3 90 v4 100 v5//添加數據60分的v1人,70分的v2人。。

zrange:

查詢

zrange zset01 0 -1

帶key查詢

zrange zset01 0 -1 withscores

2,zrangebyscore

按範圍查詢

zrangebyscore key 開始score 結束score (空 、(不包含、withscores、Limit作用是返回限制)

範例:zrangebyscore zset01 60 (90

大於等於60,小於90

範例:zrangebyscore zset01 60 90 limit 2 2//返回結果集中,從2開始截取2個,相當於分頁

3,zrem

刪除元素

zrem key 某score下對應的value值

 4,zcard/zcount key score區間/zrank key values值,作用是獲得下標值/zscore key 對應值,獲得分數

zcard:獲取個數

zcount :統計區間個數

zrank :獲取下標

zscore :獲取分數

5,zrevrank key values值

逆序獲得下標值

6,zrevrange

逆序查詢

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章