在redis中所有資料都有乙個鍵,鍵都是字串,對應的值有五種:字串、列表、雜湊表、集合、有序集合,當然在值當中也可能有鍵值對關係
redis中所有的鍵都可以直接操作,不需要宣告或者建立
1.字串
基本命令:
get:獲取儲存在指定鍵中的值,以字串形式返回值
set:設定鍵值對,返回ok
del:刪除指定鍵,以及對應的值,這個命令適合所有資料型別,返回刪除的值的數量
測試:
127.0.0.1:6379> set name zhangsan
ok127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> get name
(nil)
2.列表
基本命令:
lpush:從左邊,即向列表開始處推入乙個元素,返回列表現有元素數量
rpush:從右邊,即向列表末尾處追加乙個元素,返回列表現有元素數量
lpop:從左邊,即從列表開始處彈出乙個元素,返回彈出的元素
rpop:從右邊,即從列表末尾彈出乙個元素,返回彈出的元素
lindex:獲取指定下標的列表元素,下標從0開始
lrange:獲取指定範圍內的列表元素,開始位置包含,結束位置不包含
測試:
127.0.0.1:6379> lrange mylist 0 -1
(empty list or set)
127.0.0.1:6379> lpush mylist first
(integer) 1
127.0.0.1:6379> lrange mylist 0 -1
1) "first"
127.0.0.1:6379> lpush mylist second
(integer) 2
127.0.0.1:6379> lrange mylist 0 -1
1) "second"
2) "first"
127.0.0.1:6379> rpush mylist third
(integer) 3
127.0.0.1:6379> lrange mylist 0 -1
1) "second"
2) "first"
3) "third"
127.0.0.1:6379> rpush mylist forth
(integer) 4
127.0.0.1:6379> lrange mylist 0 -1
1) "second"
2) "first"
3) "third"
4) "forth"
127.0.0.1:6379> lpop mylist
"second"
127.0.0.1:6379> lrange mylist 0 -1
1) "first"
2) "third"
3) "forth"
127.0.0.1:6379> rpop mylist
"forth"
127.0.0.1:6379> lrange mylist 0 -1
1) "first"
2) "third"
127.0.0.1:6379> lindex mylist 0
"first"
127.0.0.1:6379> lindex mylist 1
"third"
3集合
基本命令:
sadd:新增元素到集合,返回1表示成功,返回0表示元素已經存在於集合中
srem:從集合移除指定元素,返回1表示成功,返回0表示元素不存在
sismember:指定元素是否存在於集合中,1表示true,0表示false
smembers:獲取集合中所有元素
測試:
127.0.0.1:6379> sadd myset zhangsan
(integer) 1
127.0.0.1:6379> sadd myset zhangsan
(integer) 0
127.0.0.1:6379> sismember myset zhangsan
(integer) 1
127.0.0.1:6379> sismember myset lisi
(integer) 0
127.0.0.1:6379> sadd myset lisi
(integer) 1
127.0.0.1:6379> smembers myset
1) "lisi"
2) "zhangsan"
127.0.0.1:6379> srem myset zhangsan
(integer) 1
127.0.0.1:6379> smembers myset
1) "lisi"
127.0.0.1:6379> srem myset zhangsan
(integer) 0
4雜湊
redis的雜湊儲存了多個鍵值對之間的對映,值既可以是字串又可以是數值,雜湊的鍵值對與redis本身的鍵值對關係放在一起有些不好辨識
基本命令:
hset:設定鍵值對,返回1或者0,當重新設定乙個已經存在的鍵時,返回0,但是設定成功
hget:獲取指定鍵的值,返回值
hgetall:獲取雜湊中所有鍵值對,返回所有鍵值對
hdel:刪除指定鍵值對,返回1或者0
127.0.0.1:6379> hset myhash name wangwu
(integer) 1
127.0.0.1:6379> hget myhash name
"wangwu"
127.0.0.1:6379> hset myhash age 22
(integer) 1
127.0.0.1:6379> hset myhash name lisi
(integer) 0
127.0.0.1:6379> hgetall myhash
1) "name"
2) "lisi"
3) "age"
4) "22"
127.0.0.1:6379> hdel myhash name
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "age"
2) "22"
5有序集合
有序集合儲存的是成員(member)與分值(score)的對映,成員是普通字串,分值是浮點數,與雜湊的最大不同就是既可以根據分值訪問成員,也可以直接操作成員
基本命令:
zadd:新增乙個分值、成員對映
zrem:移除給定成員
zrange:根據分值的排列順序,獲取指定範圍成員,也可以同時獲取分值
zrangebyscore:根據分值範圍獲取指定成員,也可以同時獲取分值
測試:
127.0.0.1:6379> zadd myzset 700 member1
(integer) 1
127.0.0.1:6379> zadd myzset 800 member2
(integer) 1
127.0.0.1:6379> zadd myzset 600 member3
(integer) 1
127.0.0.1:6379> zrange myzset 0 2
1) "member3"
2) "member1"
3) "member2"
127.0.0.1:6379> zrange myzset 0 1 withscores
1) "member3"
2) "600"
3) "member1"
4) "700"
127.0.0.1:6379> zrangebyscore myzset 0 850
1) "member3"
2) "member1"
3) "member2"
127.0.0.1:6379> zrangebyscore myzset 0 750
1) "member3"
2) "member1"
127.0.0.1:6379> zrem myzset member1
(integer) 1
127.0.0.1:6379> zrange myzset 0 -1
1) "member3"
2) "member2"
可以看到在有序集合中,分值主要用來排序,但是也可以直接操作成員 Redis五種資料結構
redis除了儲存鍵之外還可以儲存常見的5種資料型別,分別是 string list set zset hash。結構型別 結構儲存的值 結構的讀寫能力 string字串 可以是字串 整數或浮點數 對整個字串或字串的一部分進行操作 對整數或浮點數進行自增或自減操作 list列表 乙個鍊錶,鍊錶上的每...
Redis五種資料結構
對redis來說,所有的key 鍵 都是字串,所謂的5種資料結構是指針對value而言 資料結構型別 說明使用場景 常用方法 其他鏈結 string字串型別1 redis中最基本的資料型別,乙個key對應乙個value。2 是二進位制安全的,意思是 redis 的 string 可以包含任何資料。如...
redis的五種資料結構
key 都是字串 value 五種資料結構 常用命令 常用命令 新增 lpush key value 將元素加入列表左邊 rpush key value 將元素加入列表右邊 獲取 lrange key start end 獲取範圍 刪除 lpop key 刪除列表最左邊的元素,並將元素返回 rpop...