1.1. redis鍵值操作
1.1.1. keys patten 查詢相應的key
可以精確的查,也可以模糊的查
1.1.1.1. 通配符:* ? []
在redis里,模糊查詢key的時候有3個通配符可以用:* ? []
* 通配任意多個字符
?通配單個字符
[] 通配[]內的某一個字符
127.0.0.1:6379> keys *
1) "site"
2) "animal"
127.0.0.1:6379> keys a*
1) "animal"
127.0.0.1:6379> keys site
1) "site"
127.0.0.1:6379> keys anima[len]
1) "animal"
127.0.0.1:6379> keys anima[enk]
(empty list or set)
注:*表示0或多個任意字符
1.1.1.2. keys * 獲取所有的鍵值
設置值:
127.0.0.1:6379> set site www.baidu.com
OK
127.0.0.1:6379> set 'animal' 'cat'
OK
獲取值:
127.0.0.1:6379> get 'animal'
"cat"
獲取所有的鍵(key):
127.0.0.1:6379> keys *
1) "site"
2) "animal"
(若沒有設置key,則返回:(empty list or set))
1.1.1.3. randomkey 返回隨機key
127.0.0.1:6379> randomkey
"site"
127.0.0.1:6379> randomkey
"site"
127.0.0.1:6379> randomkey
"animal"
127.0.0.1:6379> randomkey
"site"
1.1.1.4. exists key 判斷是否存在
注:如果key存在返回1;不存在返回0
127.0.0.1:6379> type name
string
127.0.0.1:6379> type age
string
127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> exists age
(integer) 1
127.0.0.1:6379> exists ag
(integer) 0
127.0.0.1:6379> exists n
(integer) 0
1.1.1.5. type key 返回key存儲的值的類型
Key存儲的值的類型有:string、link、set、order set、hash
127.0.0.1:6379> set 'name' 'tom'
OK
127.0.0.1:6379> set 'age' 20
OK
127.0.0.1:6379> type name
string
127.0.0.1:6379> type age
string
1.1.1.6. del key1 [key2 key3...keyn] 刪除key
作用:刪除一個或多個key(鍵)
返回值:返回真正刪除的key的數量,不存在的key忽略掉
127.0.0.1:6379> keys *
1) "name"
2) "site"
3) "animal"
4) "age"
127.0.0.1:6379> del site
(integer) 1
127.0.0.1:6379> del animal
(integer) 1
127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379> exists site
(integer) 0
127.0.0.1:6379> exists animal
(integer) 0
127.0.0.1:6379> del a
(integer) 0
127.0.0.1:6379> del age cc
(integer) 1
1.1.1.7. rename key newkey 修改key的名字
作用:給key賦一個新的key名
注:如果newkey已存在,則newkey的原值被覆蓋
127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379> rename age nianling
OK
127.0.0.1:6379> keys *
1) "nianling"
2) "name"
127.0.0.1:6379> exists age
(integer) 0
127.0.0.1:6379> get name
"tom"
127.0.0.1:6379> get nianling
"20"
127.0.0.1:6379> rename nianling name
OK
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> get name
"20"
1.1.1.8. renamenx key newkey 修改key的名字
作用:newkey不存在時,把key改名為newkey
返回值:修改時返回1;不修改時返回0
注:nx--->not exists,即newkey不存在時,做改名動作
127.0.0.1:6379> keys *
1) "name"
2) "age"
3) "a"
127.0.0.1:6379> renamenx age a
(integer) 0
127.0.0.1:6379> keys *
1) "name"
2) "age"
3) "a"
1.1.1.9. move key db
注:redis默認開啟了16個數據庫(可以通過修改配置文件進行修改)
redis安裝目錄(如:/usr/local/redis/)下的配置文件redis.conf中的:databases 16
127.0.0.1:6379> keys * #默認用的是0號數據庫
1) "name"
2) "age"
3) "a"
127.0.0.1:6379> select 1 #注:切換到1號數據庫
OK
127.0.0.1:6379[1]> keys *
(empty list or set)
把0號數據庫的key移動到1號數據庫中:
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> keys *
1) "name"
2) "age"
3) "a"
127.0.0.1:6379> move age 1
(integer) 1
127.0.0.1:6379> keys *
1) "name"
2) "a"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "age"
1.1.2. key的生命周期:
memcached中的數據做緩存的,都有一個有效期(生命周期);redis中可以做存儲(持久),也可以設置有效期
1.1.2.1. ttl key 查詢key的生命周期
返回值:秒數
注:
不過期的key,返回-1
對於不存在的key、已過期的key,返回-2
127.0.0.1:6379> keys *
1) "name"
2) "a"
127.0.0.1:6379> ttl a
(integer) -1
127.0.0.1:6379> ttl cat
(integer) -2
127.0.0.1:6379> ttl c
(integer) -2
1.1.2.2. expire key整型值
作用:設置key的生命周期以秒為單位
注:pexpire key毫秒數設置生命周期
pttl key 以毫秒返回生命周期
127.0.0.1:6379> ttl a
(integer) -1
127.0.0.1:6379> expire a 2
(integer) 1
127.0.0.1:6379> get a
(nil)
127.0.0.1:6379> ttl a
(integer) -2
127.0.0.1:6379> expire a 9
(integer) 1
127.0.0.1:6379> ttl a
(integer) 6
127.0.0.1:6379> ttl a
(integer) 5
127.0.0.1:6379> ttl a
(integer) 4
1.1.2.3. persist key 設置key永久有效
作用:把指定key設置為永久有效
127.0.0.1:6379> expire age 15
(integer) 1
127.0.0.1:6379> ttl age
(integer) 12
127.0.0.1:6379> persist age
(integer) 1
127.0.0.1:6379> ttl age
(integer) -1
1.2. flushdb 清空當前數據庫中所有的key
注:此命令從不失敗,返回值:總是返回ok
127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty list or set)