Redis操作 入門個人總結

Redis操作 入門個人總結

linux下先找到redis-cli客戶端
查找
find / -name redis-cli

redis入門新手總結(只適合新手入門,都是常用命令以及個人總結)
參考文檔:https://www.runoob.com/redis/redis-tutorial.html
個別借鑑csdn、博客園、各種大牛xinde

1、首先知道什麼是redis

Redis是一種支持key-value等多種數據結構的存儲系統,也是nosql(非關係型數據庫)。
它使用C語言編寫,支持String(字符串),Hash(哈希散列),List(列表),Set(無序集合) Sorted Set(有序集合)
基於內存,可持久化。

2、redis特徵

redis是基於內存存儲數據的,
如果redis出現宕機造成數據丟失,
可以通過redis.conf配置生成相關的日誌文檔以及將數據在磁盤進行備份。

3、redis相關命令

啓動服務 (要守護進程redis.conf文件,將daemonize設置的值設置爲yes) ./redis-server …/redis.conf
進入本地客戶端 find / -name redis-cli 鏈接測試ping 返回pong就正常
開放遠程連接 vi redis.conf 註釋bind 127.0.0.1, protected-mode 變成no 一個是綁定IP,一個是關閉保護模式
雲服務器記得開放安全組 隨便檢測下防火牆相關端口
firewall-cmd --query-port=6379/tcp //查看下防火牆端口狀態
firewall-cmd --zone=public --add-port=6379/tcp --permanent //開啓
firewall-cmd --reload //重新加載
【提示,redis主從複製比較簡單(主服務器不用做什麼操作,從服務器只要slaveof 域名 端口) 返回OK就可以了】

redis數據庫操作:

摘要:
redis數據庫數量由redis.conf 配置databases=16//默認16
每個數據庫都有屬於自己的空間,不必擔心之間的key衝突。

Keys(鍵)操作命令:
keys * 獲取所有鍵,也可以模糊搜索
type key 獲取改鍵的類型
del key 刪除存在的key
move key db 移動當前數據庫key到給定的數據庫中
randomkey 從當前數據庫中隨機返回一個 key
過期時間相關:
expre key 給key設置過期時間,秒計算
persist key 移除key的過期時間
tll key 以秒返回key剩餘時間(不過期返回-1)

String:
對鍵值的寫入:
set key value 設置鍵值
mset 可以設置多個鍵值
setnv key value 只有在key不存在才設置key值
msetnx 同事設置多個key不存在才設置key值
getset key value 設置鍵值並且返回舊鍵值
incr key 所有key值是數字就增一 返回當前值 如果鍵不存在就創建
incrby key increment 給key值增量increment 返回當前值 如果鍵不存在就創建
decr跟上面意義相反,用法相同
append key value 給key追加值 相當於拼接

對鍵值的獲取:
get key獲得鍵值
mget 獲取多個key值,空格分開
strlen key 獲取key值的長度
getrange key start end 可以截取字符串一部分 從0開始

Hash:

注:hash其實就鍵值對,新手可以想象成數組這樣先理解。
對鍵值的寫入:
hset key field value 可以同時設置該鍵多個鍵值對 感覺跟hmset才差不多,就不寫hmset了
hsetnx key field value
hdel key field1 刪除一個或者多個hash key中的字段
hincrby key field increment 給hash字段整數加上增量increment
hincrbyfloat key field increment 給hash字段浮點數加上增量increment

對鍵值的獲取:
hget key field 獲取hash鍵值的字段值
hmget key field1 獲取多個hash鍵值的字段值
hgetall key 獲取hash鍵值的所有字段和值

List:
Redis列表是簡單的字符串列表,按照插入順序排序。list是以左邊爲起點,右邊爲終點。
對鍵值的寫入:
lpush key value1 從左邊插入list ,沒有key會新增,返回該key總數
lpushx key value 從左邊插入一個已存在的key,沒key會返回0
rpush key value1 從右邊插入list ,沒有key會新增,返回該key總數
rpushx key value 從左邊插入一個已存在的key,沒有key會返回0
lpop key移出第一個元素(最左邊)並返回移出的值
blpop key timeout移出第一個元素,如果列表沒元素就會阻塞等到超時或者有元素進來
brpoplpush list destinationList timeout
如果這時候redis客戶端掛了.那個數據就永遠丟失了.redis提供了一種備用機制. BRPOPLPUSH 這個命令會先把pop出來的數據.存到指定的list.然後再把傳遞給redis客戶端,多了一層保障
lrem key count value 按值去刪除list的count,count爲0就是全部
lset key index value 通過索引設置列表元素的值

對鍵值的獲取:
lindex key index 通過索引獲取list的元素,從0開始
llen key 獲取list的長度
lrange key start end 獲取list的範圍 0,-1就是全部

Set:
Redis 的 Set 是 String 類型的無序集合。集合成員是唯一的,這就意味着集合中不能出現重複的數據。
Redis 中集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是 O(1)。

對鍵值的寫入:
sadd key value1 value2 向集合添加一個或多個值
smove key2 key1 valuee 將value從key2移動到key1
sdiffstore key key1 key2 返回給定key1,key2集合的差集並存儲在key中
sinterstore key key1 key2 返回給定所有集合的交集並存儲的key中
spop key 移除並返回集合中的一個隨機值
srem key value 移除集合中一個或者多個值

對鍵值的獲取:
scard key 獲取集合的長度
sdiff key1 key2 獲取給定所有集合的差集
sinter key1 key2 獲取給定key1,key2集合的交集
sismember key value 判斷值是否在集合裏面
smembers key 獲取集合中所有的值
srandmember key count 獲取集合中一個或多個隨機值
sunion key1 key2 獲取key1,key2的並集
sunionstore key key1 key2 將key1,key2的並集存在key中
sscan key sscan match * 迭代集合中的元素

Sorted Set:
Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重複的成員。
不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來爲集合中的成員進行從小到大的排序。
有序集合的成員是唯一的,但分數(score)卻可以重複。

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