21.13 redis經常使用操做

21.13 redis經常使用操做(string)

一、string

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
[root@Dasoncheng ~]# redis-cli 
127.0.0.1:6379> get key1
"100"
127.0.0.1:6379> set key1 1001    ##第二次賦值同一能夠,會覆蓋
OK
127.0.0.1:6379> get key1
"1001"
127.0.0.1:6379> setnx key1 10001    
##使用setnx會檢測 是否存在同一key,存在則返回0(不作任何操做)  不存在則返回1 並建立該key
(integer) 0
127.0.0.1:6379> get key10
(nil)
127.0.0.1:6379> setnx key10 100
(integer) 1
127.0.0.1:6379> get key10
"100"
127.0.0.1:6379> set key11 aaa ex 10    ##建立並設定過時時間;
OK
127.0.0.1:6379> setex key11 100 bbb    ##setex建立並設定過時時間,若key存在 則覆蓋
OK
127.0.0.1:6379> get key11
"bbb"

二、list

lpush lista a //從左側加入一個元素
lpush lista b
lrange lista 0 -1 
lpop lista //從左側取出第一個元素
rpush lista 1 //從右側加入一個元素
rpop lista //從右側取出第一個元素
linsert  lista  before  2 3  //在2的前面插入一個元素爲3
lset lista 4 bbb  //把第5個元素修改成bbb
lindex lista 0  //查看第1個元素
lindex lista 3  //查看第4個元素
llen lista  //查看鏈表中有幾個元素
127.0.0.1:6379> lpush lista 111
(integer) 1
127.0.0.1:6379> lpush lista 222
(integer) 2
127.0.0.1:6379> lrange lista 0 -1
1) "222"
2) "111"
127.0.0.1:6379> lpop lista    ##向左刪除一個元素
"222"
127.0.0.1:6379> lrange lista 0 -1
1) "111"
127.0.0.1:6379> lpush lista 333
(integer) 2
127.0.0.1:6379> lpush lista 444
(integer) 3
127.0.0.1:6379> lrange lista 0 -1
1) "444"
2) "333"
3) "111"
127.0.0.1:6379> rpop lista    ##向右刪除一個元素
"111"
rpush lista 1 //從右側加入一個元素
127.0.0.1:6379> linsert lista after 333 aaa    ##在333以前 添加一個元素aaa
(integer) 3
127.0.0.1:6379> lrange lista 0 -1
1) "444"
2) "333"
3) "aaa"
127.0.0.1:6379> lset lista 2 bbb    ##將第三個元素aaa 修改成bbb
OK
127.0.0.1:6379> lrange lista 0 -1
1) "444"
2) "333"
3) "bbb"
127.0.0.1:6379> lindex lista 0    ##查看第一個元素
"444"
127.0.0.1:6379> lindex lista 2
"bbb"
127.0.0.1:6379> llen lista    ##顯示全部元素數量;
(integer) 3

三、set

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
sismember seta aaa  //判斷一個元素是否屬於一個集合
srandmember  seta  //隨機取出一個元素,但不刪除
127.0.0.1:6379> sadd seta aaa
(integer) 1
127.0.0.1:6379> sadd seta bbb ccc ddd
(integer) 3
127.0.0.1:6379> smembers seta    ##查看集合裏面的全部元素;
1) "ddd"
2) "aaa"
3) "ccc"
4) "bbb"
127.0.0.1:6379> srem seta aaa  ##刪除元素aaa
(integer) 1
127.0.0.1:6379> smembers seta
1) "ddd"
2) "ccc"
3) "bbb"
127.0.0.1:6379> spop seta  ##隨機取出一個元素並刪除;接數字 表明取出n個
"ddd"
127.0.0.1:6379> sadd seta aaa
(integer) 1
127.0.0.1:6379> sadd setb bbb ccc ddd
(integer) 3
127.0.0.1:6379> smembers seta
1) "aaa"
2) "ccc"
3) "bbb"
127.0.0.1:6379> smembers setb
1) "ddd"
2) "ccc"
3) "bbb"
127.0.0.1:6379> sdiff seta setb  ##以setb爲參考對象,求seta的差集;
1) "aaa"
127.0.0.1:6379> sdiffstore setc seta setb  ##將seta的差集 保存到集合setc;
(integer) 1
127.0.0.1:6379> smembers setc
1) "aaa"
127.0.0.1:6379> sinter seta setb  ##求seta的交集;
1) "ccc"
2) "bbb"
127.0.0.1:6379> sinterstore setd seta setb
(integer) 2
127.0.0.1:6379> sunion seta setb  ##求並集;
1) "bbb"
2) "ccc"
3) "ddd"
4) "aaa"
127.0.0.1:6379> sunionstore sete seta setb
(integer) 4
127.0.0.1:6379> sismember seta 1  ##判斷1 是否屬於seta集合;不然反饋0
(integer) 0
127.0.0.1:6379> sismember seta aaa  ##判斷aaa 是否屬於seta集合;是則反饋1
(integer) 1
127.0.0.1:6379> srandmember seta   ##隨機取出一個元素,並不刪除;
"ccc"
127.0.0.1:6379> srandmember seta 3  ##隨機取出3個元素,不刪除
1) "aaa"
2) "bbb"
3) "ccc"

四、zset

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的元素

五、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操做鍵值

keys *    //取出全部key
 keys my* //模糊匹配
 exists name  //有name鍵 返回1 ,不然返回0;
 del  key1 // 刪除一個key    //成功返回1 ,不然返回0;
 EXPIRE key1 100  //設置key1 100s後過時
 ttl key // 查看鍵 還有多長時間過時,單位是s,當 key 不存在時,返回 -2 。 當 key 存在但沒有設置剩餘生存時間時,返回 -1 。 不然,返回 key 的剩餘生存時間。
 select  0  //表明選擇當前數據庫,默認進入0 數據庫
 move age 1  // 把age 移動到1 數據庫
 persist key1   //取消key1的過時時間
 randomkey //隨機返回一個key
 rename oldname newname //重命名key
 type key1 //返回鍵的類型

21.17 redis安全設置

設置監聽ip
 bind 127.0.0.1  2.2.2.2//能夠是多個ip,用空格分隔
 設置監聽端口  
 port 16000
 設置密碼 
 requirepass aming>com
 redis-cli  -a 'aming>com'
 將config命令更名
 rename-command CONFIG aming
 禁掉config命令 
 rename-command CONFIG 「」
相關文章
相關標籤/搜索