redis简单学习3-redis常用命令总结
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
1.鍵值相關(guān)的命令
keys
返回滿足給定pattern的所有key?
表達(dá)式* 代表取出所有的key??
redis 127.0.0.1:6379> keys ?*?
1) "myzset2"?
2) "myzset3"?
3) "mylist"?
4) "myset2"?
5) "myset3"?
6) "myset4"?
7) "k_zs_1"?
keys prefix_* ? ? // 查看前綴為"prefix_"的所有keys
exists
確認(rèn)一個key是否存在 存在返回1 不存在返回0?
redis 127.0.0.1:6379> exists name?
(integer) 0??
redis 127.0.0.1:6379> exists age?
(integer) 1?
del
刪除一個key?
redis 127.0.0.1:6379> del age?
(integer) 1?
redis 127.0.0.1:6379> exists age?
(integer) 0?
expire
設(shè)置一個key的過期時間?
在本例中,我們設(shè)置addr這個key的過期時間是10秒?
然后我們不斷的用ttl來獲取這個key的有效時長,直至為-1?
說明此值已過期?
redis 127.0.0.1:6379> expire addr 10?
(integer) 1?
redis 127.0.0.1:6379> ttl addr?
(integer) 8?
redis 127.0.0.1:6379> ttl addr?
(integer) 1?
redis 127.0.0.1:6379> ttl addr?
(integer) -1?
move
將當(dāng)前數(shù)據(jù)庫中的key轉(zhuǎn)移到其它數(shù)據(jù)庫中?
數(shù)據(jù)庫有16個,從0-15?
select 0 表示選擇第0個數(shù)據(jù)庫,默認(rèn)的就是第0個數(shù)據(jù)庫?
redis 127.0.0.1:6379> select 0?
redis 127.0.0.1:6379> set age 20?
redis 127.0.0.1:6379> get age?
1) "20"?
redis 127.0.0.1:6379> move age 1?
redis 127.0.0.1:6379> get age?
(nil)?
redis 127.0.0.1:6379> select 1?
redis 127.0.0.1:6379> get age?
1) "20"?
redis 127.0.0.1:6379> select 0?
persist
移除給定key的過期時間 結(jié)果中的-1代表取消過期時間,而不是已經(jīng)過期?
redis 127.0.0.1:6379> expire age 300?
(integer) 1?
redis 127.0.0.1:6379> ttl age?
(integer) 294?
redis 127.0.0.1:6379> persist age?
(integer) 1?
redis 127.0.0.1:6379> ttl age?
(integer) -1?
randomkey
隨機(jī)返回key空間的一個key?
redis 127.0.0.1:6379> randomkey?
"mylist7"?
redis 127.0.0.1:6379> randomkey?
"mylist5"?
rename
重命名key?
redis 127.0.0.1:6379> keys *?
1) "age"?
redis 127.0.0.1:6379> rename age age_new?
OK?
redis 127.0.0.1:6379> keys *?
1) "age_new"?
type
返回值的類型?
redis 127.0.0.1:6379> type addr?
string?
redis 127.0.0.1:6379> type myzset2?
zset?
redis 127.0.0.1:6379> type mylist?
list?
2.服務(wù)器相關(guān)命令
?
ping
測試連接是否存活?
該案例 第一個ping時,說明此連接正常?
第二個ping之前,將redis服務(wù)器停止,那么ping是失敗的?
第三個ping之前,將redis服務(wù)器啟動,那么ping是成功的?
redis 127.0.0.1:6379> ping?
PONG?
redis 127.0.0.1:6379> ping?
Could not connect to Redis at 127.0.0.1:6379:Connect refused?
not connected>ping?
PONG?
redis 127.0.0.1:6379>??
echo
在命令行打印一些內(nèi)容?
redis 127.0.0.1:6379> echo lijie?
"lijie"?
select
選擇數(shù)據(jù)庫 redis數(shù)據(jù)庫編號從0-15?
我們可以選擇任意一個數(shù)據(jù)庫來進(jìn)行數(shù)據(jù)的存取?
redis 127.0.0.1:6379> select 1?
ok?
redis 127.0.0.1:6379[1]> select 16?
(error) ERR invalid DB index?
redis 127.0.0.1:6379[16]>?
當(dāng)選擇16時,報(bào)錯,說明沒有編號為16的這個數(shù)據(jù)庫?
quit
退出連接?
redis 127.0.0.1:6379> quit?
[root@localhost redis-2.2.12]#?
dbsize
返回當(dāng)前數(shù)據(jù)庫中key的數(shù)目?
redis 127.0.0.1:6379> dbsize?
(integer) 18?
結(jié)果說明此庫中有18個key?
info
獲取服務(wù)器的信息和統(tǒng)計(jì)?
config get
實(shí)時傳儲收到的請求?
redis 127.0.0.1:6379> config get addr?
1) "dir"?
2) "/root/4setup/redis-2.2.12"?
本例中我們獲取了dir這個參數(shù)配置的值?
如果想獲取全部參數(shù)的配置值,只需要執(zhí)行 config get *,即可將全部的值都顯示出來?
flushdb
刪除當(dāng)前選擇數(shù)據(jù)庫中的所有key?
redis 127.0.0.1:6379> dbsize?
(integer) 18?
redis 127.0.0.1:6379> flushdb?
ok?
redis 127.0.0.1:6379> dbsize?
(integer) 0?
在本例中我們將0號數(shù)據(jù)庫中的key都清除了?
flushall
刪除所有數(shù)據(jù)庫中的所有key?
在本例中先查看了一個1號數(shù)據(jù)庫中有一個key?
然后切換到0號數(shù)據(jù)庫執(zhí)行flushall命令?
結(jié)果1號庫中的key也清除了?
redis 127.0.0.1:6379[1]> dbsize?
(integer) 1?
redis 127.0.0.1:6379[1]> select 0?
ok?
redis 127.0.0.1:6379> flushall?
ok?
redis 127.0.0.1:6379> dbsize?
(integer) 0?
redis 127.0.0.1:6379> select 1?
ok?
redis 127.0.0.1:6379[1]> dbsize?
(integer) 0?
?
?
修改redis.conf文件可以改變數(shù)據(jù)庫的數(shù)量 : databases 160
?
連接其他的redis數(shù)據(jù)庫
./redis-cli ?–h ?10.10.52.141 ?–p ?6379
?
3.常用的命令總結(jié)
??? 1)連接操作命令
?? ?quit:關(guān)閉連接(connection)
?? ?auth:簡單密碼認(rèn)證
?? ?help cmd: 查看cmd幫助,例如:help quit
?? ?
?? ?2)持久化
?? ?save:將數(shù)據(jù)同步保存到磁盤
?? ?bgsave:將數(shù)據(jù)異步保存到磁盤
?? ?lastsave:返回上次成功將數(shù)據(jù)保存到磁盤的Unix時戳
?? ?shundown:將數(shù)據(jù)同步保存到磁盤,然后關(guān)閉服務(wù)
?? ?
?? ?3)遠(yuǎn)程服務(wù)控制
?? ?info:提供服務(wù)器的信息和統(tǒng)計(jì)
?? ?monitor:實(shí)時轉(zhuǎn)儲收到的請求
?? ?slaveof:改變復(fù)制策略設(shè)置
?? ?config:在運(yùn)行時配置Redis服務(wù)器
?? ?
?? ?4)對value操作的命令
?? ?exists(key):確認(rèn)一個key是否存在
?? ?del(key):刪除一個key
?? ?type(key):返回值的類型
?? ?keys(pattern):返回滿足給定pattern的所有key
?? ?randomkey:隨機(jī)返回key空間的一個
?? ?keyrename(oldname, newname):重命名key
?? ?dbsize:返回當(dāng)前數(shù)據(jù)庫中key的數(shù)目
?? ?expire:設(shè)定一個key的活動時間(s)
?? ?ttl:獲得一個key的活動時間
?? ?select(index):按索引查詢
?? ?move(key, dbindex):移動當(dāng)前數(shù)據(jù)庫中的key到dbindex數(shù)據(jù)庫
?? ?flushdb:刪除當(dāng)前選擇數(shù)據(jù)庫中的所有key
?? ?flushall:刪除所有數(shù)據(jù)庫中的所有key
?? ?
?? ?5)String
?? ?set(key, value):給數(shù)據(jù)庫中名稱為key的string賦予值value
?? ?get(key):返回?cái)?shù)據(jù)庫中名稱為key的string的value
?? ?getset(key, value):給名稱為key的string賦予上一次的value
?? ?mget(key1, key2,…, key N):返回庫中多個string的value
?? ?setnx(key, value):添加string,名稱為key,值為value
?? ?setex(key, time, value):向庫中添加string,設(shè)定過期時間time
?? ?mset(key N, value N):批量設(shè)置多個string的值
?? ?msetnx(key N, value N):如果所有名稱為key i的string都不存在
?? ?incr(key):名稱為key的string增1操作
?? ?incrby(key, integer):名稱為key的string增加integer
?? ?decr(key):名稱為key的string減1操作
?? ?decrby(key, integer):名稱為key的string減少integer
?? ?append(key, value):名稱為key的string的值附加value
?? ?substr(key, start, end):返回名稱為key的string的value的子串
?? ?
?? ?6)List?
?? ?rpush(key, value):在名稱為key的list尾添加一個值為value的元素
?? ?lpush(key, value):在名稱為key的list頭添加一個值為value的 元素
?? ?llen(key):返回名稱為key的list的長度
?? ?lrange(key, start, end):返回名稱為key的list中start至end之間的元素
?? ?ltrim(key, start, end):截取名稱為key的list
?? ?lindex(key, index):返回名稱為key的list中index位置的元素
?? ?lset(key, index, value):給名稱為key的list中index位置的元素賦值
?? ?lrem(key, count, value):刪除count個key的list中值為value的元素
?? ?lpop(key):返回并刪除名稱為key的list中的首元素
?? ?rpop(key):返回并刪除名稱為key的list中的尾元素
?? ?blpop(key1, key2,… key N, timeout):lpop命令的block版本。
?? ?brpop(key1, key2,… key N, timeout):rpop的block版本。
?? ?rpoplpush(srckey, dstkey):返回并刪除名稱為srckey的list的尾元素,
1.???? 并將該元素添加到名稱為dstkey的list的頭部
?? ?
?? ?7)Set
?? ?sadd(key, member):向名稱為key的set中添加元素member
?? ?srem(key, member) :刪除名稱為key的set中的元素member
?? ?spop(key) :隨機(jī)返回并刪除名稱為key的set中一個元素
?? ?smove(srckey, dstkey, member) :移到集合元素
?? ?scard(key) :返回名稱為key的set的基數(shù)
?? ?sismember(key, member) :member是否是名稱為key的set的元素
?? ?sinter(key1, key2,…key N) :求交集
?? ?sinterstore(dstkey, (keys)) :求交集并將交集保存到dstkey的集合
?? ?sunion(key1, (keys)) :求并集
?? ?sunionstore(dstkey, (keys)) :求并集并將并集保存到dstkey的集合
?? ?sdiff(key1, (keys)) :求差集
?? ?sdiffstore(dstkey, (keys)) :求差集并將差集保存到dstkey的集合
?? ?smembers(key) :返回名稱為key的set的所有元素
?? ?srandmember(key) :隨機(jī)返回名稱為key的set的一個元素
?? ?
?? ?8)Hash
?? ?hset(key, field, value):向名稱為key的hash中添加元素field
?? ?hget(key, field):返回名稱為key的hash中field對應(yīng)的value
?? ?hmget(key, (fields)):返回名稱為key的hash中field i對應(yīng)的value
?? ?hmset(key, (fields)):向名稱為key的hash中添加元素field?
?? ?hincrby(key, field, integer):將名稱為key的hash中field的value增加integer
?? ?hexists(key, field):名稱為key的hash中是否存在鍵為field的域
?? ?hdel(key, field):刪除名稱為key的hash中鍵為field的域
?? ?hlen(key):返回名稱為key的hash中元素個數(shù)
?? ?hkeys(key):返回名稱為key的hash中所有鍵
?? ?hvals(key):返回名稱為key的hash中所有鍵對應(yīng)的value
?? ?hgetall(key):返回名稱為key的hash中所有的鍵(field)及其對應(yīng)的value
轉(zhuǎn)載于:https://my.oschina.net/hanchao/blog/357153
總結(jié)
以上是生活随笔為你收集整理的redis简单学习3-redis常用命令总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到小孩被水冲走了什么意思
- 下一篇: 梦到别人生娃什么预兆