002-Redis五種資料型別-設定key的過期時間
阿新 • • 發佈:2019-01-05
1、redis命令客戶端
[[email protected] bin]# ./redis-cli
127.0.0.1:6379>
#是否執行著
127.0.0.1:6379> ping
PONG
Redis五種資料型別:String、Hash、List、Set、SortedSet
Redis中所有的資料都是字串。命令不區分大小寫,key是區分大小寫的。Redis是單執行緒的。Redis中不適合儲存內容大的資料。
String:key-value(做快取)
set key值 value值
127.0.0.1:6379> set str1 abc
OK
get key值
127.0.0.1:6379> get str1
"abc"
incr key值
將對應value值遞增1 (生成id, 網站訪問量)
127.0.0.1:6379> incr key1
(integer) 1
127.0.0.1:6379> incr key1
(integer) 2
127.0.0.1:6379> get key1
"2"
decr key值
將對應value值遞減1
127.0.0.1:6379> decr key1 #2減1等於1了
(integer) 1
127.0.0.1:6379> decr key1
(integer) 0
127.0.0.1:6379> decr key1
(integer) -1
127.0.0.1:6379> get key1
"-1"
del key值
刪除指定key值
127.0.0.1:6379> set key2 bbb
OK
127.0.0.1:6379> keys *
1) "key1"
2) "key2"
3) "str1"
127.0.0.1:6379> del key2
(integer) 1
decrby key值 增量值
將對應value值按增量值遞減
incrby key值 增量值 將對應value值按增量值遞增
mset key值 value值 key值 value值
後面跟多個鍵值對
其他:
keys *
查詢redis中儲存的所有key值
127.0.0.1:6379> keys *
1) "str1"
Hash :key-fields-value(做快取)
相當於一個key對於一個map,map中還有key-value
使用hash對key進行歸類。
hsetkey fields values 向hash中key值新增內容fileds-value值
127.0.0.1:6379> hset hash1 field1 11
(integer) 1
127.0.0.1:6379> hset hash1 field2 22
(integer) 1
127.0.0.1:6379> hset hash1 field3 33
(integer) 1
hgetkey fields 從hash中key值取內容fileds中的value值
127.0.0.1:6379> hget hash1 field1
"11"
127.0.0.1:6379>
keys * 檢視所有key值
1) "key3"
2) "key4"
3) "hash1"
4) "key1"
5) "str1"
hkeys key值
檢視key值下面的所有field值
127.0.0.1:6379> hkeys
hash1 檢視hash正在的hash1下的所有field值
1) "field1"
2) "field2"
3) "field3"
hvals
key值 檢視key值下面的所有value值
127.0.0.1:6379> hvals hash1 查詢hash1下面的所有value值
1) "11"
2) "22"
3) "33"
hgetall
key值 檢視key值下面的所有field-value鍵值對
127.0.0.1:6379> hgetall hash1 查詢hash1下面的所有field-value
1) "field1"
2) "11"
3) "field2"
4) "22"
5) "field3"
6) "33"
hdel key值 field值
刪除指定key值下面的field值
127.0.0.1:6379> hkeys hash1
1) "field1"
2) "field2"
3) "field3"
127.0.0.1:6379> hdel hash1 field1 刪除hash1下面的field1
(integer) 1
127.0.0.1:6379> hkeys hash1
1) "field2"
2) "field3"
List:有順序可重複(處理不完時,排隊相關處理)
lpush key值 value1值 value2值 …
#向key的左邊追加value值
127.0.0.1:6379> lpush list1 1 2 3 4 5
(integer) 4
#從左往右,查詢key值中startIndex到endIndex的所有值, endIndex=-1表示最後
lrange key值 startIndex endIndex
127.0.0.1:6379> lrange list1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
lpush key值 value1值 value2值 …
#向key的右邊追加value值
127.0.0.1:6379> rpush list1 a b c d f
(integer) 10
127.0.0.1:6379> lrange list1 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
6) "a"
7) "b"
8) "c"
9) "d"
10) "f"
lpop key值
#從key值裡的左邊取出1個元素值,取出後從key值消失,返回取出的值
127.0.0.1:6379> lpop list1
"5"
127.0.0.1:6379> lrange list1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "a"
6) "b"
7) "c"
8) "d"
9) "f"
rpop key值
#從key值裡的右邊取出1個元素值,取出後從key值消失,返回取出的值
127.0.0.1:6379> rpop list1
"f"
127.0.0.1:6379> lrange list1 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "a"
6) "b"
7) "c"
8) "d"
Set:元素無順序,不能重複(去重)
sadd
key值 value1值 value2值 … #向key的新增value值 ,如果有重複資料會只保留一個
127.0.0.1:6379> sadd set1 a a b b c d
(integer) 4
smembers key值
查詢key值中所有value值
127.0.0.1:6379> smembers set1
1) "d"
2) "a"
3) "c"
4) "b"
srem key值 value值
刪除key值中的value值
127.0.0.1:6379> srem set1 d
(integer) 1
127.0.0.1:6379> smembers set1
1) "a"
2) "c"
3) "b"
集合運算命令:差集sdiff
、交集sinter
、並集sunion:
127.0.0.1:6379> sadd seta a b c d
(integer) 4
127.0.0.1:6379> sadd setb c d e f
(integer) 4
sdiff key1值 key2值 取差集,取key1值集合中所特有的元素
127.0.0.1:6379> sdiff seta setb #取seta中所特有的
1) "a"
2) "b"
127.0.0.1:6379> sdiff setb seta #取setb中所特有的
1) "e"
2) "f"
sinter key1值 key2值 取交集,取key1值與key2值集合中相同的元素
127.0.0.1:6379> sinter seta setb
1) "d"
2) "c"
sunion key1值 key2值 取並集,取key1值與key2值集合中所有元素
127.0.0.1:6379> sunion seta setb
1) "d"
2) "f"
3) "c"
4) "b"
5) "a"
6) "e"
SortedSet(zset):有順序,不能重複
(伺服器消耗最高,要排序還要去重,儘量少用,)
zadd key值 分數1 value1 分數2 value2 …
向key的新增多個value值,按分數進行排序
192.168.25.153:6379> zadd zset1 1 a 3 b 2 c 4 d
(integer) 4
#升序排列查詢key值中startIndex到endIndex的所有值, endIndex=-1表示最後
zrange key值 startIndex endIndex
127.0.0.1:6379> zrange zset1 0 -1
1) "a"
2) "c"
3) "b"
4) "d"
#降序排列查詢key值中startIndex到endIndex的所有值, endIndex=-1表示最後
zrevrange key值 startIndex endIndex
127.0.0.1:6379> zrevrange zset1 0 -1
1) "d"
2) "b"
3) "c"
4) "a"
zrem key值 value值
刪除key值中會value值
127.0.0.1:6379> zrem zset1 a
(integer) 1
127.0.0.1:6379> zrange zset1 0 -1
1) "c"
2) "b"
3) "d"
zrange key值 0 -1 withscores 查詢出key中的value與分數值
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "c"
2) "2"
3) "b"
4) "3"
5) "d"
6) "4"
設定key的過期時間:
1、expire key second:設定key的過期時間(秒)
127.0.0.1:6379> expire key1 100 key1在100秒後過期
(integer) 1
2、ttl key:檢視key的有效期
127.0.0.1:6379> ttl key1
(integer) 73 大於0,還剩餘多少秒存活時間
127.0.0.1:6379> ttl key1
(integer) -2 -2 不存在redis中,
127.0.0.1:6379> ttl list1
(integer) -1 -1 永久有效,持久化
3、persist key:清除key的過期時間。Key持久化。
127.0.0.1:6379> set str2 bbb 新增str2值
OK
127.0.0.1:6379> ttl str2 檢視str2目前的有效期:持久化
(integer) -1
127.0.0.1:6379> expire str2 100 設定str2的有效期100秒
(integer) 1
127.0.0.1:6379> ttl str2 檢視str2目前的有效期:倒計時
(integer) 96
127.0.0.1:6379> persist str2 清除str2的過期時間
(integer) 1
127.0.0.1:6379> ttl str2 檢視str2目前的有效期:持久化
(integer) -1
想要相關視訊教程,請瀏覽java視訊教程:https://itzxg.taobao.com/