天天看點

redis常用指令getex_Redis常用指令整理

用windows中的Eclipse連接配接虛拟機的Redis的注意事項

禁用Linux的防火牆:Linux(CentOS7)裡執行指令

systemctl stop firewalld.service

redis.conf中注釋掉bind 127.0.0.1 ,然後 protect-mode no。

redis常用指令getex_Redis常用指令整理

redis啟動

啟動

1、備份redis.conf:拷貝一份redis.conf到其他目錄

2、修改redis.conf檔案将裡面的daemonize no 改成 yes,讓服務在背景啟動

3、啟動指令:執行 redis-server /myredis/redis.conf

4、用用戶端通路: Redis-cli

多個端口可以 Redis-cli –p 6379

5、測試驗證: ping

redis關閉

單執行個體關閉:Redis-cli shutdown

也可以進入終端後再關閉 shutdown

多執行個體關閉,指定端口關閉:Redis-cli -p 6379 shutdown

Redis五大資料類型–key

keys * 查詢目前庫的所有鍵

exists 判斷某個鍵是否存在

type 檢視鍵的類型

del 删除某個鍵

expire 為鍵值設定過期時間,機關秒。

ttl 檢視還有多少秒過期,-1表示永不過期 (-2表示已過期)

dbsize 檢視目前資料庫的key的數量

Flushdb 清空目前庫(慎用!)

Flushall 通殺全部庫(删庫跑路!!!忘了這個指令吧)

Redis五大資料類型–String

String是Redis最基本的類型,你可以了解成與Memcached一模一樣的類型,一個key對應一個value。

String類型是二進制安全的。意味着Redis的string可以包含任何資料。比如jpg圖檔或者序列化的對象 。

String類型是Redis最基本的資料類型,一個Redis中字元串value最多可以是512M

get 查詢對應鍵值

set 添加鍵值對

append 将給定的 追加到原值的末尾

strlen 獲得值的長度

setnx 隻有在 key 不存在時設定 key 的值

incr

将 key 中儲存的數字值增1

隻能對數字值操作,如果為空,新增值為1

decr

将 key 中儲存的數字值減1

隻能對數字值操作,如果為空,新增值為-1

incrby / decrby

将 key 中儲存的數字值增減。自定義步長。

mset …

同時設定一個或多個 key-value對

mget …

同時擷取一個或多個 value

msetnx …

同時設定一個或多個 key-value 對,當且僅當所有給定 key 都不存在。

getrange

獲得值的範圍,類似java中的substring

setrange

用 覆寫 所儲存的字元串值, 從開始。

setex

設定鍵值的同時,設定過期時間,機關秒。

getset

以新換舊,設定了新值同時獲得舊值。

Redis五大資料類型–list

List

單鍵多值

Redis 清單是簡單的字元串清單,按照插入順序排序。你可以添加一個元素導清單的頭部(左邊)或者尾部(右邊)。

它的底層實際是個雙向連結清單,對兩端的操作性能很高,通過索引下标的操作中間的節點性能會較差。

lpush/rpush …

從左邊/右邊插入一個或多個值。

lpop/rpop

從左邊/右邊吐出一個值。

值在鍵在,值光鍵亡。

rpoplpush

從清單右邊吐出一個值,插到清單左邊。

lrange

按照索引下标獲得元素(從左到右)

lindex

按照索引下标獲得元素(從左到右)

llen

獲得清單長度

linsert before

在的後面插入 插入值

lrem

從左邊删除n個value(從左到右)

Redis五大資料類型–set

Redis set對外提供的功能與list類似是一個清單的功能,特殊之處在于set是可以自動排重的,當你需要存儲一個清單資料,又不希望出現重複資料時,set是一個很好的選擇,并且set提供了判斷某個成員是否在一個set集合内的重要接口,這個也是list所不能提供的。

Redis的Set是string類型的無序集合。它底層其實是一個value為null的hash表,是以添加,删除,查找的複雜度都是O(1)。

sadd …

将一個或多個 member 元素加入到集合 key 當中,已經存在于集合的 member 元素将被忽略。

smembers

取出該集合的所有值。

sismember

判斷集合是否為含有該值,有傳回1,沒有傳回0

scard

傳回該集合的元素個數。

srem …

删除集合中的某個元素。

spop

随機從該集合中吐出一個值。

srandmember

随機從該集合中取出n個值。

不會從集合中删除

sinter

傳回兩個集合的交集元素。

sunion

傳回兩個集合的并集元素。

sdiff

傳回兩個集合的差集元素。

Redis五大資料類型–hash

Redis hash 是一個鍵值對集合。

Redis hash是一個string類型的field和value的映射表,hash特别适合用于存儲對象。

類似Java裡面的Map

hset

給集合中的 鍵指派

hget

從集合 取出 value

hmset …

批量設定hash的值

hexists key

檢視哈希表 key 中,給定域 field 是否存在。

hkeys

列出該hash集合的所有field

hvals

列出該hash集合的所有value

hincrby

為哈希表 key 中的域 field 的值加上增量 increment

hsetnx

将哈希表 key 中的域 field 的值設定為 value ,當且僅當域 field 不存在 .

Redis五大資料類型–zset (sorted set)

Redis有序集合zset與普通集合set非常相似,是一個沒有重複元素的字元串集合。不同之處是有序集合的每個成員都關聯了一個評分(score) ,這個評分(score)被用來按照從最低分到最高分的方式排序集合中的成員。集合的成員是唯一的,但是評分可以是重複了 。

因為元素是有序的, 是以你也可以很快的根據評分(score)或者次序(position)來擷取一個範圍的元素。通路有序集合的中間元素也是非常快的,是以你能夠使用有序集合作為一個沒有重複成員的智能清單。

zadd …

将一個或多個 member 元素及其 score 值加入到有序集 key 當中。

zrange [WITHSCORES]

傳回有序集 key 中,下标在 之間的元素

帶WITHSCORES,可以讓分數一起和值傳回到結果集。

zrangebyscore key min max [withscores] [limit offset count]

傳回有序集 key 中,所有 score 值介于 min 和 max 之間(包括等于 min 或 max )的成員。有序內建員按 score 值遞增(從小到大)次序排列。

zrevrangebyscore key max min [withscores] [limit offset count]

同上,改為從大到小排列。

zincrby

為元素的score加上增量

zrem

删除該集合下,指定值的元素

zcount

統計該集合,分數區間内的元素個數

zrank

傳回該值在集合中的排名,從0開始。

Redis事務–三特性

單獨的隔離操作

事務中的所有指令都會序列化、按順序地執行。事務在執行的過程中,不會被其他用戶端發送來的指令請求所打斷。

沒有隔離級别的概念

隊列中的指令沒有送出之前都不會實際的被執行,因為事務送出前任何指令都不會被實際執行,也就不存在“事務内的查詢要看到事務裡的更新,在事務外查詢不能看到”這個讓人萬分頭痛的問題

不保證原子性

Redis同一個事務中如果有一條指令執行失敗,其後的指令仍然會被執行,沒有復原