用windows中的Eclipse連接配接虛拟機的Redis的注意事項
禁用Linux的防火牆:Linux(CentOS7)裡執行指令
systemctl stop firewalld.service
redis.conf中注釋掉bind 127.0.0.1 ,然後 protect-mode no。
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同一個事務中如果有一條指令執行失敗,其後的指令仍然會被執行,沒有復原