進入reids
redis-cli #不能進入,就安裝: sudo apt-get update sudo apt-get install redis-server exit #退出
Select 命令用於切換到指定的資料庫,資料庫索引號 index 用數字值指定,以 0 作為起始索引值。 #預設使用 0 號資料庫 預設開16個庫 SELECT 1 # 使用 1 號資料庫,Redis 現在的命令提示符多了個 [1]
##redis五種資料型別、及操作
字串 | string |
列表 | list |
雜湊 | hash |
集合 | set |
有序集合 | sorted sets(zset) |
string
string 型別是 redis 最基本的型別, string 型別,一個 key 對應一個 value,一個 value 最大能儲存512MB的資料。
- set key value
-
-
-
set name `bear`
-
-
-
返回key的值,若key不存在則返回nil
mset key value [key value..]
-
為多組key設定值,該操作為原子操作,要麼一組都設定成功,要麼一組都設定失敗;
-
mset username `root` password `123` name `bear`
-
-
mget key [key…]
-
返回一個或多個key的值,若key不存在返回nil,若key存在但不是字串返回nil
-
mget username, password, name #有,號會被認為是key的一部分
mget username password name
-
-
-
將指定的值追加到key末尾,若key不存在,則建立並賦值,返回追加後的字串長度
-
append name bear
-
-
-
返回key的剩餘生存時間, -1 表示永久存在, -2表示不存在
-
-
-
設定 key的同時,設定過期時間(單位:秒) key 過期後將不再可用,會被系統自動刪除。
-
set age 18 ex 20 或 setex key seconds value 例: ( setex sex 20 `男` )
-
-
-
移除指定key的生存時間,成功返回1,若key不存在或不存在生存時間時返回0;
###全域性key操作
-
-
當key和newkey相同或者key不存在時返回一個錯誤,當newkey已存在時則會覆蓋;
-
keys * # 檢視所有的key del key # 刪除 返回成功的個數 exists key # 檢視key是否存在 返回存在個個數 type key # 檢視key型別 expire key seconds #設定過期時間 persist key #移除過期時間 flushdb #刪除當前資料庫中的所有key flushall #刪所有
-
列表的元素型別為string,
按照插入順序排序
在列表的頭部或者尾部新增元素
-
-
在頭部插入資料
-
lpush key value #例 lpush my_list a b c d
-
在尾部新增資料
-
rpush key value #例 rpush my_rlist a b c d
-
-
lindex key index
-
返回列表中元素的值。index從0開始,當index超出索引時返回null
-
lindex my_list 3 #檢視第三個
-
-
lrange key start stop
-
檢視索引範圍內元素的值
-
lrange my_list 0 -1 #檢視所有值
-
-
llen key
-
返回列表的長度
-
-
lset key index newvalue
-
指定索引號進行修改
- lset my_list 0 `hello`
-
-
刪除
-
lpop key 刪除左邊第一個
-
rpop my_list
-
rpop key 刪除右邊第一個
-
rpop my_list
-
lrem key count value
-
刪除指定數量的value值
-
rpush test_list c a a b b c d e a d f m c #count > 0 從左往右 刪除數量為count的value 例 : lrem test_list 2 a lrange test_list 0 -1 #count = 0 刪除所有的 value 例 : lrem test_list 0 d, #count < 0 從右往左 刪除數量為count的value 例 : lrem test_list -2 c
-
-
hash
是一個鍵值(key=>value)對集合。是string 型別的 field 和 value 的對映表,hash 特別適合用於儲存物件 field 域 value 值
-
hset key field value
-
將field-value設定到hash表中,若key不存在會新建hash表再賦值,已存在則會覆蓋;
-
hset user name bear #user { name:bear}
-
-
hmset key field1 value1[field value…]
-
同時設定多個
-
# user {name:bear , age:18} hmset user name bear age 18
-
檢視
-
hget key field
-
獲取
value
-
hget user name
-
-
hmget key field[field…]
-
獲取多個
value
-
hmget user name age
-
-
hvals key
-
獲取全部
value
-
-
hkeys key
-
獲取所有的
field
-
-
hgetall key
-
獲取全部
field
和value
-
-
hlen key
-
檢視有幾個鍵值對
-
-
hexists key field
-
判斷hash表中指定域是否存在,返回1,若key或field不存在則返回0;
-
刪除
-
hdel key field
-
hdel user name
-
set
元素為string型別
無序集合
元素具有唯一性,不重複
-
-
將一個或多個member元素加入到集合key中,若member已存在那麼會忽略此元素,
-
sadd my_set m n b v c x z b
-
-
scard key
-
返回集合key中元素的個數;
-
-
smembers key
-
獲取集合中所有元素
-
-
sismember key member 判斷集合存在某個值
-
判斷member在key中是否已存在, 返回0或1
-
sismember my_set b
-
-
刪除
-
srem key member [member…]
-
移除一個或多個元素,不存在的member會被忽略,返回被移除元素個數
-
srem my_set a b n
-
-
spop key 隨機刪除
-
移除並返回集合中的一個隨機元素,當key不存在時返回NULL
-
-
-
交集
# sinter key1 key2 .. 例 sinter my_set my_set2
把 key1 key2的交集合併到
newkey
# sinterstore newkey key1 key2 例 sinterstore new_set my_set my_set2
-
並集
# sunion key1 key2 ... 例 sunion my_set my_set2
把 key1 key2的並集合併到
newkey
# sunionstore newkey key1 key2 例 sunionstore new_set2 my_set my_set2
-
差集
# sdiff key1 key2 sdiff my_set my_set2
把 key1 key2的差集合併到
newkey
# sdiffstore newkey key1 key2 例 sdiffstore new_set3 my_set my_set2
zset
類似於Set,不同的是Sorted中的每個成員都分配了一個分數(Score)用於對其中的成員進行排序(升序)。
zset的成員是唯一的,但分數(score)卻可以重複。
-
zadd key score member[ [score member] ..]
-
設定, 存在就更新
-
zadd my_zset 1 `one` zadd my_zset 2 `tow` zadd my_zset 10 one 20 two 30 three 40 four 50 `five`
-
檢視
-
zscore key member
-
檢視score值
zscore my_zset two
-
-
zrange key start stop[withscores]
-
按索引返回key的成員, withscores表示顯示score
-
zrange my_zset 0 -1 #顯示全部
-
-
zrangebyscore key min max
-
返回集合中 score 在給定區間的元素
-
zrangebyscore zset 10 30
-
刪除
-
zrem key member [member…]
-
移除有序集合中的一個或多個元素,若member不存在則忽略;
-
zrem my_zset two
-
-
zremrangebyrank min max :
-
刪除集合中索引在給定區間的元素
zremrangebyrank my_zset 1 3
-
-
zremrangebyscore min max :
-
刪除集合中 score 在給定區間的元素
zremrangebyscore my_zset 10 30
-
redis配置
vim /etc/redis/redis.conf #配置檔案地址 port 6379 # 預設埠 logfile /var/log/redis.log # 日誌檔案位置 dbfilename dump.rdb # RDB持久化資料檔名 , dir /var/lib/redis #指定本地資料庫存放目錄 bind 0.0.0.0 # 指定IP進行監聽 requirepass yourpassword #密碼 save 900 1 #這三個是持久化,註釋掉就關掉持久化 save 300 10 save 60 10000
啟動/停止/重啟命令
/etc/init.d/redis-server stop /etc/init.d/redis-server start /etc/init.d/redis-server restart
設定密碼
config get requirepass //獲取當前密碼 #預設情況下 requirepass 引數是空的,這就意味著你無需通過密碼驗證就可以連線到 redis 服務 進入配置檔案 vim /etc/redis/redis.conf 找到requirepass 設定密碼 vim 查詢 /requirepass 按n查詢下一個 requirepass yourpassword //此處注意,行前不能有空格 重啟redis redis-cli shutdown 進入在新增 auth 123456 登陸的時候加上密碼 redis-cli -a 123456