21.13/21.14/21.15 redis常用操作
Redis常用操作 (string, list)
set key1 aminglinux
get key1
set key1 aming//第二次賦值會覆蓋
setnx key2 aaa //返回1 如果key2不存在直接創建key
setnx key2 bbb //返回0,如果key2存在,返回0
setex key3 10 1 //給key3設置過期時間爲10s,值爲1,若key已經存在,會覆蓋新的值
mset k1 1 k2 a k3 c
mget k1 k3 k2
lpush lista a //從左側加入一個元素
lpush lista b
lrange lista 0 -1
lpop lista //從左側取出第一個元素
rpush lista 1 //從右側加入一個元素
rpop lista //從右側取出第一個元素
string
#set,get用法 set key1 aminglinux get key1 #set第二次被覆蓋 set key1 aming//第二次賦值會覆蓋 #setnx 檢查key值是否存在,key存在,則不被覆蓋,key不存在,直接創建key 127.0.0.1:6379 > get key1 "10" 127.0.0.1:6379 > get key10 ( nil ) 127.0.0.1:6379 > SETNX key1 100 ( integer ) 0 127.0.0.1:6379 > SETNX key10 100 ( integer ) 1 #設置過期時間, 格式:set ` key ` ` value ` ex ` time ` 127.0.0.1:6379 > set key11 111 ex 10 OK #setex用法,給key11設置過期時間爲10s,值爲1,若key已經存在,會覆蓋新的值 格式: SETEX ` key ` ` seconds ` ` value ` 127.0.0.1:6379 > SETEX key11 1000 11 OK 127.0.0.1:6379 > get key11 "11" list 127.0.0.1:6379 > LPUSH list11 aaa ( integer ) 1 127.0.0.1:6379 > LPUSH list11 bbb ( integer ) 2 127.0.0.1:6379 > LPUSH list11 ccc ( integer ) 3 127.0.0.1:6379 > LRANGE list11 0 -1 1 ) "ccc" 2 ) "bbb" 3 ) "aaa" #從左側取出第一個元素 ,最上的一個元素 127.0.0.1:6379 > LPOP list11 "ccc" #從右側取出第一個元素,最下的一個元素 127.0.0.1:6379 > RPOP list11 "aaa" #取出的value,不會再存在list裏面 127.0.0.1:6379 > LRANGE list11 0 -1 1 ) "bbb"
Redis常用操作(list, set)
linsert lista before 2 3 //在2的前面插入一個元素爲3
lset lista 4 bbb //把第5個元素修改爲bbb
lindex lista 0 //查看第1個元素
lindex lista 3 //查看第4個元素
llen lista //查看鏈表中有幾個元素
sadd seta aaa //向集合seta中放入元素
smembers seta //查看集合中的所有元素
srem seta aaa //刪除元素
spop seta //隨機取出一個元素,刪除
sdiff seta setb //求差集,以seta爲標準
sdiffstore setc seta setb //求差集並且存儲,存儲到了setc裏
sinter seta setb //求交集
sinterstore setd seta setb //將交集存儲setd
sunion seta setb //求並集
sunionstore sete seta setb //求並集並存儲到sete
#在xxx的前面插入一個元素爲xxx 127.0.0.1:6379 >LRANGE list11 0 -1 1 ) "bbb" 127.0.0.1:6379 >LINSERT list11 before bbb aaa ( integer ) 2 127.0.0.1:6379 >LRANGE list11 0 -1 1 ) "aaa" 2 ) "bbb" #在xxx的後面插入一個元素爲xxx 127.0.0.1:6379 >LINSERT list11 after bbb ccc ( integer ) 3 127.0.0.1:6379 >LRANGE list11 0 -1 1 ) "aaa" 2 ) "bbb" 3 ) "ccc" #把第1個元素修改爲123 ,用下標表示,0=no.1,1=no.2,以此類推 格式 LET ` key ` ` 位置 ` ` value ` 127.0.0.1:6379 >LSET list11 0 123 OK 127.0.0.1:6379 >LRANGE list11 0 -1 1 ) "123" 2 ) "bbb" 3 ) "ccc" #查看第一個元素 127.0.0.1:6379 >LRANGE list11 0 -1 1 ) "123" 2 ) "bbb" 3 ) "ccc" 127.0.0.1:6379 >LINDEX list11 0 "123" #查看鏈表中有幾個元素 LLEN list11 #隨機取出一個元素,刪除 127.0.0.1:6379 >sadd seta aaa ( integer ) 1 127.0.0.1:6379 >sadd seta bbb ( integer ) 1 127.0.0.1:6379 >SPOP seta "aaa" 127.0.0.1:6379 >SMEMBERS seta 1 ) "bbb"
Redis常用操作(set, zset)
sismember seta aaa //判斷一個元素是否屬於一個集合
srandmember seta //隨機取出一個元素,但不刪除
zadd zseta 11 123 //創建有序集合
zrange zseta 0 -1 //顯示所有元素,按順序顯示
zrange zseta 0 -1 withscores //可以帶上分值
zrem zseta 222 //刪除指定元素
zrank zseta 222 //返回元素的索引值,索引值從0開始,按score正向排序
zrevrank zseta 222 //同上,不同的是,按score反序排序
zrevrange zseta 0 -1 反序顯示所有元素,並帶分值
zcard zseta //返回集合中所有元素的個數
zcount zseta 1 10 // 返回分值範圍1-10的元素個數
zrangebyscore zseta 1 10 // 返回分值範圍1-10的元素
zremrangebyrank zseta 0 2 //刪除索引範圍0-2的元素,按score正向排序
zremrangebyscore zseta 1 10 //刪除分值範圍1-10的元素
#創建有序集合 127.0.0.1:6379> ZADD zseta 11 123 (integer) 1 127.0.0.1:6379> ZADD zseta 22 223 (integer) 1 127.0.0.1:6379> ZRANGE zseta 0 -1 1) "123" 2) "223" 127.0.0.1:6379> #刪除指定元素 127.0.0.1:6379> ZREM zseta 123 (integer) 1 127.0.0.1:6379> ZREM zseta 223 (integer) 1 127.0.0.1:6379> #返回元素的索引值,索引值(integer後面的值)從0開始,按score正向排序, 127.0.0.1:6379> ZADD zseta 10 aaa (integer) 1 127.0.0.1:6379> ZADD zseta 30 cccc (integer) 1 127.0.0.1:6379> ZADD zseta 20 bbb (integer) 1 127.0.0.1:6379> ZRANGE zseta 0 -1 1) "aaa" 2) "bbb" 3) "cccc" 127.0.0.1:6379> ZRANk zseta aaa #反序排序 127.0.0.1:6379> ZREVRANGE zseta 0 -1 1) "cccc" 2) "bbb" 3) "aaa" (integer) 0 127.0.0.1:6379> ZRANk zseta ccc (nil) 127.0.0.1:6379> ZRANk zseta cccc (integer) 2
Redis常用操作(hash)
hset user1 name aming //建立hash
hset user1 age 30
hset user1 job it
hgetall user1
hmset user2 name aming age 30 job it //批量建立鍵值對
hmget user2
hmget user2 name age job
hdel user2 job //刪除指定filed
hkeys user2 //打印所有的key
hvals user2 //打印所有的values
hlen user2 //查看hash有幾個filed
21.16 redis操作鍵值
21.17 redis安全設置