redis數據庫操作


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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM