一:安裝配置
1.1 在ubuntu14.04的安裝
sudo apt-get install redis-server
使用redis-server -v 來查看redis的版本,測試一下
1.2 配置redis
①修改配置文件,路徑在/etc/redis/redis.conf
綁定的回環ip,我們注釋掉就可以了,就會默認綁定本機所有ip
②重啟redis-server
sudo service redis-server restart
二:基本操作
1.1key鍵操作
1:exists key 測試指定key是否存在
2:del key1 key2 ---keyN 刪除給定的key
3:type key 返回給定key的value類型
4:keys pattern 返回匹配指定模式的所有key
5:rename oldkey newkey 改名字
6:dbsize 返回當前數據庫的key數量
7:expire key seconds 為key指定過期時間
8:ttl key 返回key的剩余過期秒數
9:select db-index 選擇數據庫
10 move key db-index 將key從當前數據庫移動到指定的數據庫
11:flushdb 刪除當前數據庫中所有的key
12:flushall 刪除所有數據庫中的所有key
1.2:string類型操作
string是redis最基本的類型,一般我們可以用來保存序列化的對象或者一些圖片的二進制字符串
1:set key value 設置key對應的值為string類型的value
2:mset key1 value1 key2 value2 一次性設置多個key的值
3:mget key1 key2 ----keyN 一次獲取多個key的值
4:incr key 對key的值做加加操作,並返回新的值
5:decr key 同上,但是做的是減減操作
6:incrby key integer 同incr,加指定值
7:decrby key integer 同decr,減指定值
8:append key value 給指定key的字符串值追加value
9:substr key start end 內容截取,內容下標從0開始,截取的內容包括start和end位置
1.3: List鏈表類型操作
list類型其實是一個雙向的鏈表,通過push,pop操作從鏈表的頭部或者尾部添加刪除元素,這使得list既可以用作棧,也可以用作隊列。一般我們使用它來獲取最新的信息,可以存儲n條,如果有新紀錄加進來,就刪除舊的信息
lpush key string 在key對應的list的頭部添加字符串元素
rpop key 從list的尾部刪除元素,並返回刪除元素
llen key 對應list的長度,key不存在返回0,如果key對應類型不是list返回錯誤
lrange key start end 返回指定區間內的元素,下標從0開始
rpush key string 同上,在尾部添加
lpop key 從list的頭部刪除元素,並返回刪除元素
ltrin key start end 截取list,保留指定區間內元素
1.4: set集合類型操作
set其實相當於string類型的無序集合
關於set集合類型除了基本的添加,刪除操作,其他有用的操作還包含集合的並集,交集,差集,一般可以用來實現好友推薦功能
1:sadd key member 添加一個string元素到key對應的set集合中,成功就返回1,如果元素已經在集合中,返回0,key對應的set不存在返回錯誤
2:srem key member [member] 從key對應set中移除給定元素,成功就返回1
3:scard key 返回set的元素個數
4:sismember key member 判斷member是否在set中
5:sinter key1 key2 key3 ---keyN 返回所有給定key的交集
6:sunion key1 key2 --keyN 返回所有給定key的並集
7:sdiff key1 key2 --keyN 返回所有給定key的差集
8:smembers key 返回key對應set的所有元素
1.5 sort set 排序集合類型
元素有排序功能,不存在多個相同的元素,和set一樣,sorted set 也是string類型元素的集合,不同的每個元素都會關聯一個權,通過權值來進行排序
1:zdd key 權 值 給key的set sort排序集合的key添加元素
2:zrevrange key start end 獲取由高到低的各個元素值
3:zscore key value 獲取元素的權信息
4:zrank key value 獲取元素的排名序號
5:zcard key 獲取集合的個數
6:zremrangebyrank key 0 0 刪除一個權最小的舊元素
三:持久化
nosql產品為了內部數據的安全考慮,會把本身的數據以文件的形式保存到硬盤當中,在服務器重啟之后會自動把 硬盤的數據恢復到內存里面,這個過程叫做持久化的過程
3.1: 快照持久化
持久化備份的頻率和觸發機制可以在redis的配置文件中修改
第一行表示如果900秒內有超過一個 key被修改,就會發起快照保存,剩下同理,下面是備份文件名稱
3.2 aof持久化
基本原理:這個操作會把所有 用戶寫的操作(添加,刪除,修改)都備份到文件中,如果 需要還原數據,就執行這些保存的命令即可
3.2.1 開啟aof持久化
第一次開啟該aof持久化會清空redis的全部數據
# appendfsync always //每次收到寫命令就立即強制寫入磁盤,最慢的,但是保證完全的持久化,不推薦使用,【數據最安全,服務器性能最低】
#appendfsync everysec //每秒鍾強制寫入磁盤一次,在性能和持久化方面做了很好的折中,推薦 【數據相對安全,服務器性能折中】
# appendfsync no //完全依賴 os,性能最好,持久化沒保證【數據安全性低,服務器性能最高】
做壓縮的原因,我們的一些操作 ,比如incr 1 執行100次,其實就相當於set age 100,但aof文件重復記錄了100次,當
redis收到壓縮的指定的時候,它會使用類似於內存快照的方式把內存的數據用命令的方式保存到臨時文件中,最后再替換原來的aof文件
bgrewriteaof