redis的幾個操做,還有誰不知道的?

redis的幾個操做,還有誰不知道的?

redis是什麼:面試

  • Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
  • redis是開源,BSD許可,高級的key-value存儲系統。
  • 能夠用來存儲字符串,哈希結構,鏈表,集合,所以,經常使用來提供數據結構服務。

安裝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 命令成功。架構

  1. 須要安裝到指定目錄, 則可使用 make install PREFIX=/mnt/d/redis 注意添加配置文件
redis的幾個操做,還有誰不知道的?

個人同事們併發

啓動命令分佈式

  1. 啓動 sh /redis-server ../conf/redis.conf
  2. 之後臺進程的方式啓動須要修改 redis.conf 文件的 daemonize=yes
  3. 客戶端鏈接 sh /redis-cli -h 192.168.1.123 -p 6379

配置文件中的 bind 用來綁定服務端的ip, 爲了安全,默認不容許外網訪問

默認保護模式 protect-mode=yes

多數據支持

默認支持16個數據庫, databases=16 , 默認使用的是DB 0 . redis數據庫不支持自定義名稱, 且不能單獨作受權, 各個數據庫之間並不是徹底隔離. flushall 命令能夠清空redis中全部的數據.

select 3 轉到索引爲3的數據庫

使用命令

  1. keys prifix* 查找到全部開頭爲prifix的鍵, pattern 可使用[? * [] ]匹配
  2. EXISTS key 是否存key
  3. type key 獲取數據結構

字符類型

key的最大存儲爲512M.

  1. set key value 比較重要的 setnx
  2. get key
  3. incr key 遞增值 incrby key [step] 遞增指定的step
  4. strlen key 得到長度
  5. mget key1 key2 key3 批量獲取多個key的值
  6. set key1 value1 key2 value2 批量設置多個鍵值

key的設計能夠參看阿里的規範, 例如 業務名:表名:id

列表類型

  1. lpush key value 左邊push數據,對應的是 rpush
  2. lpop key 獲取數據, 同時數據被移除,對應的是 rpop
  3. llen key 列表長度
  4. lrange key start stop 獲取片斷, start=-1 表示從頭,stop=-1表示到結尾
  5. lrem key count value 刪除
  6. lset key index value 設置索引的值

散列類型

不支持數據類型嵌套, 好比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的幾個操做,還有誰不知道的?

請下命令

redis的事務

比較雞肋, 不建議使用, 有時候不能回滾

multi 開啓事務;

set get... 等操做爲具體的事務操做

exec 提交事務

過時時間

expire key timeout 設置超時時間

ttl key 得到key過時時間

發佈訂閱

publish channel message

subscribe channel

分佈式鎖

可以使用 setnx 實現

感謝你耐心看完了文章…

關注做者,我會不按期在掘金分享Java,Spring,MyBatis,Redis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化、分佈式架構,BATJ面試 等資料…

相關文章
相關標籤/搜索