Redis基本簡介及命令

一、安裝配置:

wget: http://download.redis.io/releases/redis-3.2.10.tar.gz

解壓:

tar -zxvf redis-3.2.10.tar.gz

安裝:
進入 redis-3.2.10 文件夾
執行:make
後臺啓動redis加&

src/redis-server &

二、定製配置文件:
vim /etc/redis.conf

# 是否後臺運行
daemonize yes
# 端口
prot 6379
# 日誌文件位置
logfile /data/6379/redis.log
# RDB持久化數據文件名字
dbfilename dump.rdb
# 持久化文件的存放位置
dir /data/6379

重啓reids—> 進入redis關閉

/root/redis-3.2.10/src/redis-cli
shutdown
exit

重啓reids

mkdir -p /data/6379
/root/redis-3.2.10/src/redis-server /etc/redis.conf

三、配置環境變量(將redis的路徑加入到環境變量中)

cd /root
vim .bash_profile
# 進入到這個文件當中去,將下面的這個命令粘貼到最後一行
export PATH=$PATH:/root/redis-3.2.10/src

然後保存退出

source .bash_profile
# 最後就可以直接使用 redis-cli 來進入到redis中了

四、設置密碼:redis開啓密碼驗證

編輯配置文件:vim /etc/redis.conf
在最下方加入:requirepass 123456
重啓redis生效:

redis-cli
shutdown
exit

redis-server /etc/redis.conf

登錄方法一 進入redis -a 加密碼

redis-cli -a 123456

登錄方法二 先進入再驗證

redis-cli
auth 123456

四、redis 中的持久化:redis中支持兩種持久化的功能,一種是RDB,一種是AOF

RDB:鏡像方式持久化,保存一個時間點的內存數據狀態,也就是說不是實時的保存。
1、不是實時保存到磁盤,一段時間做一次內存鏡像到磁盤。
2、覆蓋形式的持久化方式。
3、一般會用這種持久化方式備份。
4、持久化的數據可能不是完整的。

AOF:append only file, 記錄redis的每一條修改操作到持久化文件中。
1、可以是一個實時的持久化方式。
2、是一個追加形式記錄持久化的方式。
3、持久話的數據可能是完整的。

註釋:持久化規則 ---- 配置完成後需要重啓

RBD持久化配置: vim /etc/redis.conf

dbfilename dump.rdb
dir /data/6379
save 900 1    # 表示在900秒內有一個變化就觸發save持久化
save 300 10   # 表示在300秒內有10個變化就觸發save持久化
save 60 10000 # 在60秒內有10000個變化就觸發save持久化

AOF持久化配置:

#開關
appendonly yes/no

#持久化策略(三選一)
appendsync always  # 每做一條操作(變化)就持久化一次
appendsync everysec  # 每秒鐘持久化一次,有可能丟失1秒內的數據
appendsync no  # 不自動持久化

reids在企業中的應用場景
在這裏插入圖片描述
五、Redis開發、實戰管理
1、redis數據類型
String:字符串類型 ---->Key:value
Hash: 字典表 ------>id name age
List: 列表
Set:集合
Sorted set:有序集合

2、全局Key操作
參考: https://blog.csdn.net/xiaozhu0301/article/details/95205331

3、redis 中的數據類型的基本操作

str:
		常規計數
		set mykey "adadada" #設置/更改 鍵值
		get mykey    # 獲取鍵值
		incr fensi   # 自動增長加一
		decr fensi   # 自動減一
		incrby fensi 1000 # 指定增長因子
		decrby fensi 1000 # 指定減去因子
		
		一次性定義多個鍵值對
		mset num1 10 num2 20 num3 30 
		一次性獲取多個
		mget num1 num2 num3
		
		刪除
		del mykey
		改
		append mykey “hello”
		
	Hash:用來存儲對象類
key
    keys * 獲取所有的key
    select 0 選擇第一個庫
    move myString 1 將當前的數據庫key移動到某個數據庫,目標庫有,則不能移動
    flush db      清除指定庫
    randomkey     隨機key
    type key      類型
    
    set key1 value1 設置key
    get key1    獲取key
    mset key1 value1 key2 value2 key3 value3
    mget key1 key2 key3
    del key1   刪除key
    exists key      判斷是否存在key
    expire key 10   10過期
    pexpire key 1000 毫秒
    persist key     刪除過期時間
string
    set name cxx
    get name
    getrange name 0 -1        字符串分段
    getset name new_cxx       設置值,返回舊值
    mset key1 key2            批量設置
    mget key1 key2            批量獲取
    setnx key value           不存在就插入(not exists)
    setex key time value      過期時間(expire)
    setrange key index value  從index開始替換value
    incr age        遞增
    incrby age 10   遞增
    decr age        遞減
    decrby age 10   遞減
    incrbyfloat     增減浮點數
    append          追加
    strlen          長度
    getbit/setbit/bitcount/bitop    位操作
hash
    hset myhash name cxx
    hget myhash name
    hmset myhash name cxx age 25 note "i am notes"
    hmget myhash name age note   
    hgetall myhash               獲取所有的
    hexists myhash name          是否存在
    hsetnx myhash score 100      設置不存在的
    hincrby myhash id 1          遞增
    hdel myhash name             刪除
    hkeys myhash                 只取key
    hvals myhash                 只取value
    hlen myhash                  長度
list
    lpush mylist a b c  左插入
    rpush mylist x y z  右插入
    lrange mylist 0 -1  數據集合
    lpop mylist  彈出元素
    rpop mylist  彈出元素
    llen mylist  長度
    lrem mylist count value  刪除
    lindex mylist 2          指定索引的值
    lset mylist 2 n          索引設值
    ltrim mylist 0 4         刪除key
    linsert mylist before a  插入
    linsert mylist after a   插入
    rpoplpush list list2     轉移列表的數據
set
    sadd myset redis 
    smembers myset       數據集合
    srem myset set1         刪除
    sismember myset set1 判斷元素是否在集合中
    scard key_name       個數
    sdiff | sinter | sunion 操作:集合間運算:差集 | 交集 | 並集
    srandmember          隨機獲取集合中的元素
    spop                 從集合中彈出一個元素
zset
    zadd zset 1 one
    zadd zset 2 two
    zadd zset 3 three
    zincrby zset 1 one              增長分數
    zscore zset two                 獲取分數
    zrange zset 0 -1 withscores     範圍值
    zrangebyscore zset 10 25 withscores 指定範圍的值
    zrangebyscore zset 10 25 withscores limit 1 2 分頁
    Zrevrangebyscore zset 10 25 withscores  指定範圍的值
    zcard zset  元素數量
    Zcount zset 獲得指定分數範圍內的元素個數
    Zrem zset one two        刪除一個或多個元素
    Zremrangebyrank zset 0 1  按照排名範圍刪除元素
    Zremrangebyscore zset 0 1 按照分數範圍刪除元素
    Zrank zset 0 -1    分數最小的元素排名爲0
    Zrevrank zset 0 -1  分數最大的元素排名爲0
    Zinterstore
    zunionstore rank:last_week 7 rank:20150323 rank:20150324 rank:20150325  weights 1 1 1 1 1 1 1
排序:
    sort mylist  排序
    sort mylist alpha desc limit 0 2 字母排序
    sort list by it:* desc           by命令
    sort list by it:* desc get it:*  get參數
    sort list by it:* desc get it:* store sorc:result  sort命令之store參數:表示把sort查詢的結果集保存起來
訂閱與發佈:
    訂閱頻道:subscribe chat1
    發佈消息:publish chat1 "hell0 ni hao"
    查看頻道:pubsub channels
    查看某個頻道的訂閱者數量: pubsub numsub chat1
    退訂指定頻道: unsubscrible chat1   , punsubscribe java.*
    訂閱一組頻道: psubscribe java.*
redis事物:
     隔離性,原子性, 
     步驟:  開始事務,執行命令,提交事務
             multi  //開啓事務
             sadd myset a b c
             sadd myset e f g
             lpush mylist aa bb cc
             lpush mylist dd ff gg
服務器管理
    dump.rdb
    appendonly.aof
    //BgRewriteAof 異步執行一個aop(appendOnly file)文件重寫
    會創建當前一個AOF文件體積的優化版本
    
    //BgSave 後臺異步保存數據到磁盤,會在當前目錄下創建文件dump.rdb
    //save同步保存數據到磁盤,會阻塞主進程,別的客戶端無法連接
    
    //client kill 關閉客戶端連接
    //client list 列出所有的客戶端
    
    //給客戶端設置一個名稱
      client setname myclient1
      client getname
      
     config get port
     //configRewrite 對redis的配置文件進行改寫
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章