redis 数据操作命令汇总(string hash list set zset)
1、string ? ? 字符串型
? ? set name ?zhangsan ? # ?設置name(key) 為zhangsan(value)
? ? get name ? ? ? ? ? ? ?#獲取key的值
? ? exists name ? ? #判斷name是否存在
? ? del ?name ? ?#刪除鍵值 name
? ? type name ? #獲取name的類型? ? ?
? ? ?
? ? incr sum ?#如果鍵 sum 不存在 ?則創建 初始值為 1 ? 若存在 ?則加一 ?如果不是整數型 則報錯
? ? incrby sum 12 #與incr類似 sum+12 ? ?
? ? decr sum ? ?#與incr相反 減去 1
? ? decrby sum 12 ?#sum-12
? ??
? ? incrbyfloat sum 0.2 # sum+0.2?
? ? append name ?" is " #尾部添加 is
? ? strlen name #獲取name的長度
? ??
? ? mget ?name ?sum ?#同時獲取多個鍵 ?
? ? mset ?name ?lisi ? sum 1110 #同時設置多個值
? ?【del ?支持通配符 ? 可刪除所有符合規則的 ?在這里可以看到 http://www.cnblogs.com/mintworld/p/5729805.html】
2、 hash 散列類型
? ? ??
?
? ? ? ? 存儲方式如果按照 萬物皆對象 就像上圖一樣 命令如下
? ? ? ? hset person:1 ?height ?175
? ? ? ? hset person:1? weight ?120
? ? ? ? hset person:1? age ? ? ? 28
?
? ? ? ? hget person:1 ?age ?#獲取age
? ? ? ? ? ? ? ? 或者
? ? ? ? hmset ?person:1 ?height 175 weight 120 age 28
? ? ? ? hmget ? ??person:1 ?height weight age
? ? ? ? hgetall ?person:1
?
? ? ? ? hexists person:1 ?age # 判斷鍵的字段是否存在
? ? ? ? hsetnx person:1 ?age 120 # 如果age存在則無任何操作 不存在則創建字段賦值給字段
? ? ??
? ? ? ? hincrby person:1 age ?1 ?#如果字段age存在則 age+1 如果不存在則 創建字段并賦值為1 如果類型不可累加 則報錯
? ? ? ? hdel person:1 age height #刪除一個或多個字段
? ? ? ? hkeys person:1 ?#獲取所有的字段
? ? ? ? hvals person:1 #獲取所有的字段值
? ? ? ? hlen ?person:1 #獲取字段數量
3、 ? list 列表類型?
? ? ? ? lpush message cust:123:hello #放入列表左側
? ? ? ? rpush message cust:123:hello #放入列表右側
? ? ? ? lpop ?message ?#從左邊彈出一個值
? ? ? ? rpop ?message #從右側彈出一個值
? ? ? ? llen message ?#獲取元素的個數
? ? ? ? lrange message 0 -1 #從第一個取出到最后一個
? ? ? ? lrem message ?2 1 ? #刪除前兩個值中為1的值 ? >0從左側 ?<0從右側 ? =0 刪除所有為1 的值
? ? ? ? lindex message ?2 ? ?#獲取值為2的下標 從0開始
? ? ? ? lset message 0 zhangsan ?#設置第一個值為zhangsan
? ? ? ? ltrim message 1 8 ? #只保留下標從1到8的值其余剪切掉
? ? ? ? linsert message after ?114 1 #在message中從0開始找到值為114然后在后面插入一個1 ? after ?另一個是before
? ? ? ? rpoplpush message ceshi #從message右側取出一個值放入 到 測試的左側中去\
4、 ? set 集合類型?
? ? ? ? sadd person:youyong ?user:1 user:2 ? ?# 向person:youyong ?放入 user:1 ?user:2 ?一般用來做的就是 ?標簽 ? 有游泳興趣的用戶是 ?1 2
? ? ? ? srem person:youyong user:1 user:2 ? #刪除一個或者多個元素
? ? ? ? smembers person:youyong ?#獲取所有元素
? ? ? ? sismember person:youyong user:1 #判斷元素是否存在
? ? ? ? ------------------------------------------------------差集 ?交集 ?并集--------------------------------
? ? ? ? sadd person:yinyue ? ?user:3 user:4 ? ?#準備工作
? ? ? ? sdiff ?person:youyong person:yinyue ? #結果是 user:1 user:2 ? ? ? A-B
? ? ? ? sadd?person:yinyue ? ?user1 ? #準備工作
? ? ? ? sinter?person:youyong person:yinyue #結果是 user:1
? ? ? ? sunion ?person:youyong person:yinyue ?#結果是 user:1 user:2 user:3 user:4
? ? ? ? ------------------------------------------------------------------------------------------------------
? ? ? ? ?scard person:youyong #獲取person:youyong 的元素個數?
? ? ? ? ?sdiffstore person:test person:youyong person:yinyue#將獲取到的值存儲到 person:test中去 ? sinterstore ?sunionstore ?一樣
? ? ? ? ?srandmember person:test ?#隨機獲取一個元素
? ? ? ? ?srandmember person:test ? 2 ?#隨機獲取2個元素? ? ? ? 2可以為負數 則有可能重復 ? 當大于所有元素個數的時候則全部出現
? ? ? ? ?spop person:test ?#隨機彈出一個元素
5、 ? ?zset 有序集合
? ? ? ? ? 有序集合與集合相比多了個排序
? ? ? ? zadd ?person:all ? ?80 user:1 ?90 user:2 #添加元素
? ? ? ? 修改的話
? ? ? ? zadd person:all ? ?100 user:1
? ? ? ? zscore ?person:all ? user:1 #獲取元素的值 ? 100
? ? ? ? zrange ?person:all ? 0 -1 #得到的結果是 升序的 ? user:2 ?user:1 ? 如果 ?zrange ?person:all ? 0 -1 withscores ?則是 ?user:2 ? 90 ? user:1 ?100
? ? ? ? zrevrange person:all ? 0 -1 ? #同上 得到的結果是 ?降續
? ? ? ? -----------------------------------------------------------------------------------------------------------
? ? ? ? zrangebyscore person:all ?80 100 ?#獲取元素值在 80到100的元素 包含兩端 ? 得到的結果是 ? user:1 ?100 ? ? ? ?withscores ? ?
? ? ? ? zrevrangebyscore person:all 80 100 ?#同上 得到的結果是 ?降續
? ? ? ??ZRANGEBYSCORE person:all (80 100 withscores ? ? #不包含80
? ? ? ? ?---------------------------------------------------------------------
? ? ? ? #取前幾個值?
? ? ? ?zrangebyscore person:all ?80 100 ?withscores ?limit 0 ?1 ? ?# 大于等于80小于等于100 取一個從下標0(第一個開始取)開始
? ? ? ?#增加某個元素的值
? ? ? ??ZINCRBY person:all ?1 ?user:1 ? #加1
? ? ????ZINCRBY person:all ?-1 ?user:1 ?#減1 ?
? ? ? ??ZCARD person:all ? #獲取元素個數
? ? ? ??ZCOUNT person:all 80 100 ?#獲取值在80和100之間元素的個數
? ? ? ??ZCOUNT person:all 80 +inf ? #大于等于 80以上的所有元素的個數 ? ?+inf -inf ?正無限大 ?負無限大
? ? ? ? zrem ?person:all ? user:1 user:2 ?#刪除多個元素
? ? ? ? ----------按照排名范圍刪除-------------------------------
? ? ? ??ZREMRANGEBYRANK person:all 0 ?2 ??
? ? ? ??ZREMRANGEBYSCORE person:all 20 80 ? #按照值刪除
? ? ? ? -----------獲得元素的排名------------------------
? ? ? ??ZRANK person:all user:1 ? ? #獲得升序排名
? ? ? ??ZREVRANK person:all user:1 ? #獲得降序排名
? ? ? ??
? ? ? ?
?
轉載于:https://www.cnblogs.com/mintworld/p/5743081.html
總結
以上是生活随笔為你收集整理的redis 数据操作命令汇总(string hash list set zset)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《OD大数据实战》Flume环境搭建
- 下一篇: 代码生成器,自己实现的一个基于模板的在线