redis是存儲數據變化較快的並且不是總要的數據
安裝:
wget http://download.redis.io/releases/redis-5.0.0.tar.gz
tar -zxvf redis-5.0.0.tar.gz
yum install gcc
yum install gcc-c++
make && make install
cp src/redis-server /usr/bin/
cp src/redis-cli /usr/bin/
啟動cd redis-5.0.0
redis-server redis.conf
配置文件參數:
daemonize yes
關閉
redis-cli shutdown
13、設置密碼
因為這是給局域網內的很多人使用,所以設置一個訪問密碼很有必要。
修改redis.conf文件配置
使用命令 :/ requirepass 快速查找到 # requirepass foobared 然后去掉注釋,這個foobared改為自己的密碼。然后wq保存。
sudo service redis restart 這個時候嘗試登錄redis,發現可以登上,但是執行具體命令是提示操作不允許
1. redis-cli -h 127.0.0.1 -p 6379
2. redis 127.0.0.1:6379>
3. redis 127.0.0.1:6379> keys *
4. (error) ERR operation not permitted
嘗試用密碼登錄並執行具體的命令看到可以成功執行
1. redis-cli -h 127.0.0.1 -p 6379 -a password
2. redis 127.0.0.1:6379> keys *
3. 1) "myset"
4. 2) "mysortset"
5. redis 127.0.0.1:6379> select 1
6. OK
bind 127.0.0.1 (192.168.126.8)#對外提供鏈接的地址
port 6379 #默認端口號
daemonize no #守護進程(如果是yes后台運行)
databases 16 #(redis數據庫用0,1,2,3....代表)
save 900 1 #每900秒有1次增刪改操作就同步到磁盤當中
dbfilename dump.rdb #rdb備份方式的文件名字(默認開啟)
dir ./ #備份文件存放位置
appendonly no #aof備份是否開啟(默認不開啟)
appendfilename "appendonly.aof" #aof備份文件名稱
appendfsync everysec #aof同步機制,每秒同步到磁盤當中
鏈接命令
redis-cli -h 127.0.0.1 -p 6379
切換用戶
127.0.0.1:6379> SELECT 1
OK
127.0.0.1:6379[1]>
默認是0
字符串
添加:
127.0.0.1:6379[1]> set name zxw
OK
查看key
127.0.0.1:6379[1]> keys *
1) "name"
查看values
127.0.0.1:6379[1]> get name
"zxw"
設置過期時間
127.0.0.1:6379[1]> set name zxw ex 10
OK
127.0.0.1:6379[1]> get name
"zxw"
刪除:
127.0.0.1:6379> del name
(integer) 1
列表
在列最上邊添加元素:
添加到第一位
127.0.0.1:6379> lpush lan c++
(integer) 5
127.0.0.1:6379> lrange lan 0 -1
1) "c++"
2) "zxw"
3) "jave"
4) "python"
5) "zhao"
移除最上元素:
127.0.0.1:6379> lpop lan
"c++"
查看列表中的元素:
127.0.0.1:6379> lrange lan 0 -1 初始0 -1全局
1) "java"
2) "python"
在列表最下添加元素:
127.0.0.1:6379> rpush lan zxw
(integer) 4
127.0.0.1:6379> LRANGE lan 0 -1
1) "c++"
2) "java"
3) "python"
4) "zxw"
刪除最底那個
127.0.0.1:6379> rpop lan
“zxw"
查看列表里幾個元素
127.0.0.1:6379> llen lan
(integer) 4
127.0.0.1:6379> lrange lan 0 -1
1) "zxw"
2) "jave"
3) "python"
4) "zhao"
指定返回第幾個元素:
127.0.0.1:6379> lindex lan 0
"zxw"
127.0.0.1:6379> lindex lan 1
"jave"
127.0.0.1:6379> lindex lan 0
"zxw"
127.0.0.1:6379> lindex lan 1
"jave"
刪除指定的元素幾次:
127.0.0.1:6379> lrange lan 0 -1
4) "zxw"
5) "zxw"
6) "jave"
7) "python"
8) "zhao"
127.0.0.1:6379> lrem lan 1 zxw
(integer) 3
127.0.0.1:6379> lrange lan 0 -1
2) "zxw"
3) "jave"
4) "python"
5) "zhao"
集合
添加元素去重:
127.0.0.1:6379> sadd lan jave python c++ zxw zxw
(integer) 4
查看元素:
127.0.0.1:6379> smembers lan
1) "jave"
2) "python"
3) "zxw"
4) "c++"
移除元素:
127.0.0.1:6379> srem lan jave
(integer) 1
查看集合中的元素個數:
127.0.0.1:6379> scard lan
(integer) 3
127.0.0.1:6379> SMEMBERS lan
1) "python"
2) "zxw"
3) "c++"
獲取多個集合的交集:
127.0.0.1:6379> SMEMBERS lan
1) "python"
2) "c++"
3) "zxw"
127.0.0.1:6379> SMEMBERS lan2
1) "jave"
2) "python"
127.0.0.1:6379> SINTER lan lan2
1) "python"
獲取多個集合的並集:
127.0.0.1:6379> SUNION lan lan2
1) "jave"
2) "python"
3) "zxw"
4) "c++"
獲取多個集合的差集:以前為基准
127.0.0.1:6379> SDIFF lan lan2
1) "zxw"
2) "c++"
哈希
添加一個新值:
127.0.0.1:6379> hset zxw high 175
(integer) 1
獲取哈希中的field對應的值:
127.0.0.1:6379> hget zxw high
"175"
刪除:
127.0.0.1:6379> hdel zxw high
(integer) 1
獲取某個哈希中所有的key:values
127.0.0.1:6379> hgetall zxw
1) "gender"
2) "nan"
獲取某個哈希中所有的key
127.0.0.1:6379> HKEYS zxw
1) "gender"
2) "high"
獲取某個哈希中所有的values:
127.0.0.1:6379> HVALS zxw
1) "nan"
2) "175"
判斷哈希中是否存在某個field:
127.0.0.1:6379> HEXISTS zxw high
(integer) 1
獲取哈希中總共的鍵值對:
127.0.0.1:6379> HLEN zxw
(integer) 2
事物操作:Redis事務可以一次執行多個命令,事務具有以下特征:
隔離操作:事務中的所有命令都會序列化、按順序地執行,不會被其他命令打擾。
原子操作:事務中的命令要么全部被執行,要么全部都不執行。
開啟一個事務:multi
提交事務:exec
回滾事務:discard