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

clipboard.png

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.gz
tar xzf redis-5.0.4.tar.gz
cd redis-5.0.4
make

缺乏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包.數據結構

安裝方法以下:架構

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 命令成功。併發

須要安裝到指定目錄, 則可使用 make install PREFIX=/mnt/d/redis 注意添加配置文件分佈式

clipboard.png

啓動命令微服務

啓動 sh /redis-server ../conf/redis.conf
之後臺進程的方式啓動須要修改 redis.conf 文件的 daemonize=yes
客戶端鏈接 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的數據庫

使用命令

keys prifix 查找到全部開頭爲prifix的鍵, pattern 可使用[? [] ]匹配
EXISTS key 是否存key
type key 獲取數據結構
字符類型

key的最大存儲爲512M.

set key value 比較重要的 setnx
get key
incr key 遞增值 incrby key [step] 遞增指定的step
strlen key 得到長度
mget key1 key2 key3 批量獲取多個key的值
set key1 value1 key2 value2 批量設置多個鍵值
key的設計能夠參看阿里的規範, 例如 業務名:表名:id

列表類型

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

不支持數據類型嵌套, 好比hash中存儲一個list.

hset key field value
hget key field
hmset key field1 value1 field2 value2
hmget key field1 field2
hgetall key
hexists key field
hincryby
hsetnx
hdel key field

集合類型

和list相比, 不能有重複元素, 且是無序的

sadd key member...
smembers key
sdiff key1 key2
sunion key1 key2

有序集合

zadd key score member
zrange key start stop withscores

能夠用來作排名統計

clipboard.png

redis的事務

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

multi 開啓事務;

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

exec 提交事務

過時時間

expire key timeout 設置超時時間

ttl key 得到key過時時間

發佈訂閱

publish channel message

subscribe channel

分佈式鎖

可以使用 setnx 實現

感謝你耐心看完了文章…

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

相關文章
相關標籤/搜索