redis基礎知識

2022-09-08 23:06:23 字數 2172 閱讀 4517

redis預設有16個資料庫

預設使用的是第0個

可以使用select進行切換

127.0.0.1:6379> select 2 #切換資料庫

ok127.0.0.1:6379[2]> dbsize # 檢視db大小!

(integer) 0

127.0.0.1:6379[2]> keys * #檢視資料庫所有的key

1) "name"

清楚當前資料庫flushdb清除全部資料庫flushall彩蛋:為什麼redis埠號是6379!自行了解!

redis是單執行緒的!

明白redis是很快的,官方表示,redis是基於記憶體操作,cpu不是redis效能瓶頸,redis的瓶頸是根據機器的記憶體和網路頻寬來的,既然可以使用單執行緒來實現,就使用單執行緒了!所以就使用單執行緒了!

redis是c語言寫的,官方提供的資料為 100000+ 的qps,完全不比同樣是使用key-value的memecache差!

redis為什麼單執行緒還這麼快?

誤區1:高效能的伺服器一定是多執行緒的

誤區2:多執行緒一定比單執行緒效率高

cpu>記憶體》硬碟的速度要有所了解!

核心:redis是將所有的資料全部存放在記憶體中的,所以說使用單執行緒去操作效率就是最高的,多執行緒(cpu上下文會切換:耗時操作!!!),對於記憶體系統來說,如果沒有上下文切換效率就是最高的!多次讀寫都是在乙個cpu上的,在記憶體情況下,這個就是最佳的方案!

127.0.0.1:6379> exists name #判斷當前key是否存在

(integer) 1

127.0.0.1:6379> exists name1

(integer) 0

127.0.0.1:6379> move name 1 #移除當前的key

(integer) 1

127.0.0.1:6379> keys *

1) "age"

127.0.0.1:6379> set name dw

ok127.0.0.1:6379> keys *

1) "name"

2) "age"

127.0.0.1:6379> get name

"dw"

127.0.0.1:6379> expire name 5 #設定過期時間,單位是秒

(integer) 1

127.0.0.1:6379> ttl #檢視當前key的剩餘時間

(error) err wrong number of arguments for 'ttl' command

127.0.0.1:6379> ttl name

(integer) 0

127.0.0.1:6379> get name

(nil)

127.0.0.1:6379> type name #檢視當前key的乙個型別

none

127.0.0.1:6379> type age

string

後面如果遇到不會的命令,可以在官網檢視幫助文件!

Redis基礎知識

1 redis是開源的高效能鍵值對 key value 資料庫 通過提供各種鍵值資料型別來適應不同場景下的儲存需求,並借助許多高層級的介面使其可以勝任如快取 佇列系統等不同的角色。2 remote dictionary server,以字典結構儲存資料,並允許其他應用通過tcp協議讀寫字典中的內容 ...

redis基礎知識

redis是乙個基於記憶體的高效能key value 1.redis五大基本資料型別 字串 string set get 雜湊 hash hmset hmgetall 鍊錶 list 按照插入順序可以新增乙個元素列表的頭部 左邊 和尾部 右邊 lpush rpush lrange 集合 set sa...

Redis基礎知識

樂觀鎖watch相當於mysql裡面的version jedis採用的是直連的方式,多個執行緒的操作不安全,避免的話採用的是池化技術 redis資料使用的是記憶體中,因此廣泛應用在快取裡面 使用當作快取的原因 模擬一下作業系統裡面的區域性性原理 使用redis不用本地的map的原理 map屬於本地快...