【Redis】Redis各種數據類型的操作

目錄

redis當中對字符串string的操作

redis當中對hash列表的操作

redis當中對list列表的操作

redis操作set集合

redis中對key的操作

redis當中的數據庫操作


  • redis當中對字符串string的操作

CRUD

功能

示例

添加字符串

set  hello world

設置多個KV

mset AA AAA BB BBB CC CCC

設置過期時間

setex hello1  5 word1

key不存在時設置

setnx  hello2  word22

查詢字符串

get  hello

查詢部分

getrange hello 0 2

查詢多key

mget hello hello2 hello3

查詢長度

strlen  hello

修改字符串

set  hello  world2

追加

append hello 333

刪除字符串

del  hello

其他

現獲取後設置

getset hello word222

替換

setrange hello22 2 AA

累加1

incr  number

累加N

incrby  number  10

累加小數

incrbyfloat  number 0.5

減一(只對integer有效)

decr number

減N

decrby  number 3

 

  • redis當中對hash列表的操作

Redis hash 是一個string類型的field和value的映射表,hash特別適合用於存儲對象。Redis 中每個 hash 可以存儲 232 - 1 鍵值對(40多億)

CRUD

功能

示例

添加一個hash列表

hset hkey1 name zhangsan

不存在時添加

hsetnx hkey2 name lisi

一次設置多個值

hmset hkey3 name wangwu age 20 sex 1

查看數據

hget hkey1 name

查看是否存在

hexists hkey3 name

查詢key下所有值

hgetall hkey3

查詢key內所有的字段

hkeys hkey3

查詢key的數據量

hlen hkey3

查詢某一key內多字段的值

hmget  hkey3 name age

修改數據

hset hkey1 name zhangsan2

刪除key中的數據

hdel hkey3 sex

其他

數據累加(1-N)

hincrby hkey number1 10

累加小數

hincrbyfloat  hkey number1 0.5

 

  • redis當中對list列表的操作

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

一個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)。

CRUD

功能

示例

添加一個或多個值到列表

lpush lkey1 zhangsan lisi

將一個值插入到已存在的列表頭部

lpushx lkey1 wangwuxxx

向已經存在的列表中插入數據(右邊插入)

rpush lkey1 AA  BB

將一個值插入到已存在的列表尾部

rpushx  lkey1 ccc

在某一數據之前插入

linsert lkey1 before lisi lisibefore

在某一數據之後插入

linsert lkey1 after lisi lisiafter

查詢list中所有數據 (-1表示所有)

lrange lkey1 0 -1

通過索引查詢數據

lindex lkey1 0

查詢列表長度

llen lkey1

通過索引修改數據

lset lkey1 5 eee

數據修剪(保留)

ltrim lkey1 4 6

刪除指定key數據

del lkey1

其他

移出並獲取列表的第一個元素

lpop lkey1

移出並獲取列表的最後一個元素

rpop lkey1

移除列表的最後一個元素,並將該元素添加到另一個列表並返回

rpoplpush lkey1 lkey2

 

  • redis操作set集合

Redis 的 Set 是 String 類型的無序集合。集合成員是唯一的,這就意味着集合中不能出現重複的數據。

Redis 中集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是 O(1)。

· 集合中最大的成員數爲 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。

CRUD

功能

示例

向集合添加一個或多個數據

sadd skey1  zhangsan  lisi

sadd skey2  wangwu  lisi

查詢集合所有數據

smembers skey1

查詢集合內數據總量

scard skey1

查詢兩個集合的差集

sdiff skey1 skey2

查詢差值並將結果寫入新集合

sdiffstore  skey3  skey1 skey2

查詢兩個集合交集

sinter skey1 skey2

查詢兩個集合交集結果寫入新集合

sinterstore skey4 skey1 skey2

查詢某一數據是否包含在集合中

sismember skey1 zhangsan

返回集合內隨機的N個數據

srandmember skey2 2

查詢並集

sunion skey1  skey2

查詢並集結果寫入新集合

sunionstore skeyn  skey1  skey2

將數據在一個集合移動到另一個集合

smove skey1 skey2 zhangsan

移除結果中的某個數據

srem skey2 zhangsan

 

  • redis中對key的操作

CRUD

功能

示例

 查

查詢所有符合模式的key

Keys *

查詢剩餘過期時間(毫秒)

pttl  hkey1

查詢剩餘過期時間(秒)

ttl  hkey1

在數據庫中隨機回返一個key

randomkey

查詢key對應數據的類型

Type hkey1 

對key進行重命名

Rename  hkey1  hkey10

刪除存在的key

del BB

其他

判斷key是否存在

exists AA

爲key 設置超時時間

expire AA 10

爲key 設置超時時間(毫秒)

pexpire CC  10000

移除key的過期時間

persist hkey1

 

  • redis當中的數據庫操作

Redis支持多個數據庫,並且每個數據庫的數據是隔離的不能共享,並且基於單機纔有,如果是集羣就沒有數據庫的概念。

Redis是一個字典結構的存儲服務器,而實際上一個Redis實例提供了多個用來存儲數據的字典,客戶端可以指定將數據存儲在哪個字典中。這與我們熟知的在一個關係數據庫實例中可以創建多個數據庫類似,所以可以將其中的每個字典都理解成一個獨立的數據庫。

每個數據庫對外都是一個從0開始的遞增數字命名,Redis默認支持16個數據庫(可以通過配置文件支持更多,無上限),可以通過配置databases來修改這一數字。客戶端與Redis建立連接後會自動選擇0號數據庫,不過可以隨時使用SELECT命令更換數據庫,

 

選擇指定數據庫:

select 1

 

清空redis數據庫當中的數據:

flushdb

 

清空所有redis數據庫當中的數據:

flushall

 

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