Redis可用作數(shù)據(jù)庫吊洼,緩存和消息中間件
Redis 是一個開源(BSD許可)的测蘑,內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲系統(tǒng)灌危,它可以用作數(shù)據(jù)庫、緩存和消息中間件碳胳。 它支持多種類型的數(shù)據(jù)結(jié)構(gòu)勇蝙,如 字符串(strings), 散列(hashes)挨约, 列表(lists)味混, 集合(sets)产雹, 有序集合(sorted sets) 與范圍查詢, bitmaps翁锡, hyperloglogs 和 地理空間(geospatial) 索引半徑查詢蔓挖。 Redis 內(nèi)置了 復(fù)制(replication),LUA腳本(Lua scripting)盗誊, LRU驅(qū)動事件(LRU eviction),事務(wù)(transactions) 和不同級別的 磁盤持久化(persistence)隘弊, 并通過 Redis哨兵(Sentinel)和自動 分區(qū)(Cluster)提供高可用性(high availability)哈踱。
Redis默認(rèn)有16個數(shù)據(jù)庫
默認(rèn)使用的是第0個數(shù)據(jù)庫;
1梨熙、可以使用select 進行數(shù)據(jù)庫切換:
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]>
2开镣、查看所有的key:key *
3、清空當(dāng)前數(shù)據(jù)庫:flushdb
4咽扇、清空所有數(shù)據(jù)庫:flushall
5邪财、判斷當(dāng)前的key是否存在 EXISTS NAME
6、移出當(dāng)前的key move name 1
7质欲、設(shè)置key過期時間树埠,單位是秒 EXPIRE name 10
8、查看當(dāng)前key的剩余時間 ttl name
9嘶伟、查看當(dāng)前key的類型 type name
10怎憋、setex key3 30 "hello" 設(shè)置過期時間
11、setnx mykey "MongoDB" 不存在再設(shè)置(分布式鎖中常常使用)
12九昧、批量設(shè)置 mset key1 v1 key2 v2 key3 v3
13绊袋、批量獲取 mget key1 key2 key3
14、普通存值铸鹰,set key
15癌别、普通取值,get key
后面遇到不會的命令蹋笼,可以從官網(wǎng)上查看幫助文檔
Redis是單線程的
官方表示展姐,Redis是基于內(nèi)存操作的,CPU不是Redis的性能瓶頸剖毯,Redis的瓶頸是根據(jù)j機器的內(nèi)存和網(wǎng)絡(luò)帶寬的
Redis是C語言寫的
Redis是單線程為什么還這么快诞仓?
1、誤區(qū)一:高性能的服務(wù)器速兔,一定是多線程的墅拭?
2、誤區(qū)二:多線程(cpu上下文會切換;凉贰)一定比單線程高谍婉?
速度比較:cup>內(nèi)存>硬盤
核心:redis是將所有的數(shù)據(jù)全都放到內(nèi)存中舒憾,所以說使用單線程去操作效率就是最高的!多線程(CPU會上下文切換穗熬,耗時的操作)對于內(nèi)存系統(tǒng)來說镀迂,沒有上下文切換,效率就是最高的唤蔗。
為什么Redis的端口為6379探遵?(了解一下即可)
6379在是手機按鍵上MERZ對應(yīng)的號碼,而MERZ取自意大利歌女Alessia Merz的名字妓柜。MERZ長期以來被Redis作者antirez及其朋友當(dāng)作愚蠢的代名詞箱季。后來Redis作者在開發(fā)Redis時就選用了這個端口。