redis是什麼:面試
安裝redis
wget http://download.redis.io/releases/redis-5.0.4.tar.gztar xzf redis-5.0.4.tar.gzcd redis-5.0.4make複製代碼
缺乏make包, 則須要經過 sudo apt-get install make 安裝數據庫
make報錯 /bin/sh: cc: command not found 缺乏gcc包, 經過 sudo apt-get install gcc安全
若是報錯 fatal error: jemalloc/jemalloc.h: No such file or directory 則使用 make MALLOC=libc 編譯性能優化
可使用命令 make test 測試. 報錯 You need tcl 8.5 or newer in order to run the Redis test 則須要安裝tcl包.bash
安裝方法以下:數據結構
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/ cd /usr/local/tcl8.6.1/unix/ sudo ./configure sudo make sudo make install複製代碼
安裝完成後運行 make test 命令成功。架構
個人同事們併發
啓動命令分佈式
配置文件中的 bind 用來綁定服務端的ip, 爲了安全,默認不容許外網訪問
默認保護模式 protect-mode=yes
多數據支持
默認支持16個數據庫, databases=16 , 默認使用的是DB 0 . redis數據庫不支持自定義名稱, 且不能單獨作受權, 各個數據庫之間並不是徹底隔離. flushall 命令能夠清空redis中全部的數據.
select 3 轉到索引爲3的數據庫
使用命令
字符類型
key的最大存儲爲512M.
key的設計能夠參看阿里的規範, 例如 業務名:表名:id
列表類型
散列類型
不支持數據類型嵌套, 好比hash中存儲一個list.
hset key field valuehget key fieldhmset key field1 value1 field2 value2hmget key field1 field2hgetall keyhexists key fieldhincrybyhsetnxhdel key field複製代碼
集合類型
和list相比, 不能有重複元素, 且是無序的
sadd key member...smembers keysdiff key1 key2sunion key1 key2複製代碼
有序集合
zadd key score memberzrange key start stop withscores複製代碼
能夠用來作排名統計
請下命令
redis的事務
比較雞肋, 不建議使用, 有時候不能回滾
multi 開啓事務;
set get... 等操做爲具體的事務操做
exec 提交事務
過時時間
expire key timeout 設置超時時間
ttl key 得到key過時時間
發佈訂閱
publish channel message
subscribe channel
分佈式鎖
可以使用 setnx 實現
感謝你耐心看完了文章…
關注做者,我會不按期在掘金分享Java,Spring,MyBatis,Redis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化、分佈式架構,BATJ面試 等資料…