簡單描述下redis的使用場景和資料結構

2021-10-06 14:22:51 字數 3737 閱讀 5625

字元型別

雜湊型別

列表型別

集合型別

有序集合

可以為每個key設定超時時間;

可以通過列表型別來實現分布式佇列的操作

支援發布訂閱的訊息模式

提供了很多命令與redis進行互動

資料快取(商品資料、新聞、熱點資料)

單點登入

秒殺、搶購

**訪問排名…

應用的模組開發

tar -zxvf 安裝包

在redis目錄下 執行 make

可以通過make test測試編譯狀態

make install [prefix=/path]完成安裝

./redis-server ../redis.conf

./redis-cli shutdown

以後臺程序的方式啟動,修改redis.conf   daemonize =yes

連線到redis的命令

./redis-cli -h 127.0.0.1 -p 6379

redis-server 啟動服務

redis-cli 訪問到redis的控制台

redis-benchmark 效能測試的工具

redis-check-aof aof檔案進行檢測的工具

redis-check-dump  rdb檔案檢查工具

redis-sentinel  sentinel 伺服器配置

預設支援16個資料庫;可以理解為乙個命名空間

跟關係型資料庫不一樣的點

redis不支援自定義資料庫名詞

每個資料庫不能單獨設定授權

每個資料庫之間並不是完全隔離的。 可以通過flushall命令清空redis例項面的所有資料庫中的資料

通過  select dbid 去選擇不同的資料庫命名空間 。 dbid的取值範圍預設是0 -15

獲得乙個符合匹配規則的鍵名列表

keys pattern  [? / * /]

keys mic:hobby

判斷乙個鍵是否存在 , exists key

type key 去獲得這個key的資料結構型別

乙個字元型別的key預設儲存的最大容量是512m

賦值和取值

set key  value

get key

遞增數字

incr key

錯誤的演示

intvalue= get key;

value =value +1;

set key value;

key的設計

物件型別:物件id:物件屬性:物件子屬性

建議對key進行分類,同步在wiki統一管理

簡訊重發機制:sms:limit:mobile 138。。。。。expire

incryby key increment遞增指定的整數

decr key原子遞減

key value向指定的key追加字串

strlenkey獲得key對應的value的長度

mgetkeykey..同時獲得多個key的value

mset key value  key value  key value …

setnx

list,可以儲存乙個有序的字串列表

lpush/rpush: 從左邊或者右邊push資料

lpush/rpush key value value …

{17 20 19 18 16}

llen num  獲得列表的長度

lrange key  start stop   ;  索引可以是負數, -1表示最右邊的第乙個元素

lrem key count value

lset key index value

lpop/rpop : 取資料

應用場景:可以用來做分布式訊息佇列

hash key value  不支援資料型別的巢狀

比較適合儲存物件

person

age  18

***   男

name mic

..hset key field value

hget key filed

hmset key filed value [filed value …]  一次性設定多個值

hmget key field field …  一次性獲得多個值

hgetall key  獲得hash的所有資訊,包括key和value

hexists key field 判斷字段是否存在。 存在返回1. 不存在返回0

hincryby

hsetnx

hdel key field [field …] 刪除乙個或者多個字段

set 跟list 不一樣的點。 集合型別不能存在重複的資料。而且是無序的

sadd key member [member ...] 增加資料; 如果value已經存在,則會忽略存在的值,並且返回成功加入的元素的數量

srem key member  刪除元素

smembers key 獲得所有資料

sdiff key key …  對多個集合執行差集運算

sunion 對多個集合執行並集操作, 同時存在在兩個集合裡的所有值

zadd key score member

zrange key start stop [withscores] 去獲得元素。 withscores是可以獲得元素的分數

如果兩個元素的score是相同的話,那麼根據(0<9**訪問的前10名。

multi 去開啟事務

exec 去執行事務

expire key seconds

ttl  獲得key的過期時間

publish channel message

subscribe channel [ …]

codis . twmproxy

資料庫可以做 activemq

快取 -redis  setnx

zookeeper 

redis使用場景

最近要去面試php程式設計師,去各家招聘 看看,都要有redis方面的知識儲備。這裡寫一篇部落格,就當是對最近學習redis的一次回顧。簡單一句話介紹redis 基於記憶體的高效的key value資料庫,把資料載入到記憶體中進行處理,定期把資料儲存到硬碟進行儲存,單執行緒。redis五大資料型別 ...

redis使用場景

redis開創了一種新的資料儲存思路,使用redis,我們不用在面對功能單調的資料庫時,把精力放在寫龐大的sql上了,而是利用redis靈活多變的資料結構和資料操作來實現。redis常用資料型別 redis最為常用的資料型別主要有以下五種 下面我們先來逐一的分析下這五種資料型別的使用和內部實現方式 ...

Redis使用場景

1 字串使用場景 a 快取功能 典型使用場景 redis作為快取層,mysql作為儲存層,絕大部分請求的資料都是從redis中獲取,由於redis具有支撐高併發的特性,所以快取通常能起到加速讀寫和降低後端壓力的作用。b 計數 c 共享session 典型應用場景 使用者登陸資訊,redis將使用者的...