日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

redis 类型、方法

發布時間:2024/7/19 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis 类型、方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前使用redis,現在對所有redis方法做一個總結;

string類型

  形式:key=>value;

  說明:最簡單的類型;一個key對應一個value,value保存的類型是二進制安全的,string可以包含任何數據,比如圖片或者序列換的對象

  方法:

    set:設置key對應的值為string類型的value;如果存在則修改,否則添加;返回ok

set name aaa

    setnx:設置key對應的值為string類型的value;如果存在,失敗返回0,不存在則添加,成功返回value;nx為not exists 的意思

setnx name aaa

    setex:設置key對應的值為string類型的value;并指定此建對應的有效期;成功返回ok;

setex name 10 aaa //設置名字為aaa并且有效期有10秒

    setrange:設置指定key的value值的子字符串;替換

setrange name 2 aaa //設置name從第二個下標開始替換后面的三個子字符串為aaa;返回修改后的字符串長度

    mset:一次性設置多個key的值,成功返回ok表示所有值都設置了,失敗返回0表示沒有任何值被設置;

mset name1 aaa1 name2 aaa2 //設置name1為aaa1,name2為aaa2

    msetnx:一次性設置多個key的值,成功返回OK表示所有值被設置了,失敗返回0表示沒有值被設置了;不會覆蓋已經存在的key

msetnx name4 aaa4 name5 aaa5 //設置name4為aaa4,name5為aaa5 如果其中一個存在則返回0,不改變任何;成功返回1

    getset:設置key的值,并且返回一個key的舊值,舊值不存在則返回空,新增一個新值;

getset name5 aaa5 //設置name5的值為aaa5 并返回name5的舊值,不存在則返回nil

    getrange:獲取key對應的string的子字符串;有則返回子字符串,沒有則返回空字符串

getrange name5 0 2 //返回key為name5的字符串中下表0到2的子字符串

?    get:獲取key對應的value值

get name5

    mget:批量獲取值

mget name1 name2 name3 name4 //返回name1,name2,name3,name4的值,不存在則返回nil

    incr:對key的值進行遞增操作,返回新的值

incr name6 //對name6的值進行遞增,如果值為字符串則會報錯,成功返回自增后的值

    incrby:對key的值增加或減少指定值的操作

incrby name6 12 //對name6的值加12返回新值 incrby name6 -12 //對name6的值減12 返回新值

    decr\decrby同上

    append:給指定key的值追加value;返回新的字符串長度

append name5 bbb //給key為name5的值追加bbb

    strlen:返回指定key的value長度

strlen name5 //返回name5的value長度

?

hashes類型

  形式:key:field value field value

  說明:string類型field和value的映射表,適合于存儲對象,類似與表,ID可以連接在key后面;

  方法:

    hset:設置hash field為指定值,如果key不存在則創建,成功返回1,失敗返回0

hset myhash field1 value1 field2 value2 //創建一個key為myhash的fied1為value1 field2為value2的hash類型數據

    hget:獲得指定key中指定屬性的值

hget myhash field1 //獲取myhash中屬性field1的值

    hsetnx:設置hash field為指定值,如果key不存在,則先創建,如果存在返回失敗0

hsetnx myhash title aaa //添加myhash中title的值為aaa

    hmset:批量設置hash中的過個field

hmset myhash field1 value1 field2 value2 field3 value3

?    hincrby:指定hash field 加上指定值

hincrby myhash field value

    hexists:判斷指定hash中字段是否存在

hexists myhash field

    hlen:指定hash中field的數量

hlen myhash

    hdel:刪除指定hash中的field

hdel myhash field

    hkeys:獲取指定hash中所有的field

hkeys myhash

    hvals:獲取指定hash中所有的value

hvals myhash

    hgetall:獲取指定hash中所有的field 和 value

hgetall myhash

?list類型

  格式:mylist:key1=>value1 key2=>value2

  說明:list是一個鏈表結構,主要功能是push、pop、獲取一段范圍內的所有值等等;操作中key理解為鏈表的名字;,鏈表既可以做棧也可以做隊列

  方法:

    lpush:向頭部添加元素;成功返回添加后的數量;可以同事添加多個元素

?

lpush mylist value //向mylist頭部添加 value

?

    lpop:從頭部彈出一個元素;成功返回第一個元素;失敗返回nil

lpop mylist //從mylist頭部彈出第一個元素,并刪除

    lrange:獲取list中兩個下表中的所有值;

lrange mylist 0 -1 //返回mylist中所有的值

    rpush:從尾部添加一個元素;可同時添加多個;返回添加后的長度

rpush mylist aaa bbb //向mylist尾部最加兩個元素

    rpop:從尾部彈出一個元素;

rpop mylist //從mylist尾部彈出一個值,并刪除最后一個

    linsert:向列表中間插入一個;返回添加后的長度

linsert mylist before "aaa" "bbb" //在mylist中向aaa前面插入bbb

    lset:修改指定list指定下標的元素值;成功返回OK;

lset mylist index value //將mylist中下標為index的值替換為value

    lrem:從指定list中刪除和指定值相同的值;返回影響的行數

lrem mylist count value //從mylist中刪除count個和value中相同的值;返回影響的行數;

    ltrim:在指定list中保留指定下標內的元素;成功返回ok

ltrim mylist start end //保留mylist中從start到end下標的元素

    rpoplpush:從第一個list尾部彈出一個元素添加到第二個元素頭部

rpoplpush mylist1 mylist2 從第一個list尾部彈出一個添加到mylist2頭部

?    lindex:返回指定list中指定下標的值;

lindex mylist index //返回mylist中下標index的值

    llen:返回list的長度

llen mylist //獲取mylist中元素的長度

set集合

  格式:myset:value1 value2 value2

  說明:set是string類型的無序集合,set是通過hash table實現的,對于集合可以去并集、交集、差集,可以實現類似好友推薦的功能;

  方法:

    sadd:向指定集合中添加元素;集合中不允許有重復的值

sadd myset value //向myset集合中添加value元素

    smembers:查看指定集合中的元素

smembers myset //查看myset中的元素

    srem:刪除集合中的成員

srem myset value //刪除集合中value成員

    spop:從集合中隨機彈出刪除指定個數的元素,默認為1;返回被刪除的元素

spop myset1 2 //隨機彈出并刪除兩個元素

    sdiff:返回兩個集合的差集,以第一為主,就是第一個集合中有第二個集合中沒有的返回,第一個集合沒有第二個集合有則不返回

sdiff myset1 myset2 // 返回myset1和myset2中的差集;以myset1為主

    sdiffstore:以第二個為主,與后面的集合比較取差集,存入第一個集合中,如果第一個中本來就有值,則先清空在插入

sdiffstore myset1 myset2 myset3 //以myset2為主將myset2和myset3的差集存入myset1中

    sinter:返回n個集合的交集

sinter myset1 myset2 //返回myset1和myset2的交集

    sinterstore:將第二個和后面的取交接,存入第一個結合中

sinterstore myset1 myset2 myset3 //將myset2 myset3的交集存入myset1中

?    unision:取n個集合的交集

unsion myset1 myset2 //取myset1和myset2的交集

    unisionstore:將第二個和后面的集合取交集,存入第一個集合中

unisonstore myset1 myset2 myset3 //將myset2 myset3取交集存入myset1中

    smove:將第一個集合中的元素移到第二個集合中,只可以移動一個s

smove myset1 myset2 value //將myset1中的value移到myset2中

    scard:返回集合中元素的個數

scard myset1 //獲取myset1中的元素的個數

?    sismember:判斷集合中是否存在該元素;存在返回true,不存在返回false;

sismember myset1 value //判斷myset1中是否存在value

    srandmember:隨機返回指定個數的元素;但不刪除;

srandmember myset1 count //隨機返回myset中count個元素,但不刪除

sorted set 有序集合

  格式:storeset:value store

  說明:stored set是有序集合,無需集合的升級版;在set基礎上添加了一個數序屬性,該屬性在添加的時候可以指定;每次在zset集合添加設置后,集合會自動按照書序排序  

  方法:

    zadd:向有序結合中添加元素和順序,當添加同樣順序的不同值時,相同順序不同值會按照插入順序排序,最先插入的在上面,當插入的元素已經存在則失敗;就是排序不唯一,值已定唯一;

zadd myzset order value //向myzset中添加value元素 排序是order

    zrange:查看有序列表中的元素;可指定加上順序;withsorces

orange myzset 0 -1 withscores //返回myzset集合中所有排序和元素,按照排序返回

    zrem:刪除有序集合中的指定值

zrem myzset value //刪除myzset中值為value的元素

    zincrby:給制定有序集合中指定值的順序加或減

zincrby myzset count value //給myzset有虛表中值為value的順序加count

?    zrank:返回指定有序集合中指定的值在排序中從小到大的位置,及下標;不是順序 沒有則返回nil

zrank myzset value //返回myzset中value的下標

    zrevrank:返回指定有序集合中指定的值在排序中從大到小排序的位置,及下標;

zrevarank myzset value //返回myzset 從大到小排序中value的下標

    zrevrange:返回從大到小,與zrange順序相反

zrevrange myzset1 0 -1 withscroes //返回myzset中所有元素,從大到小

    zrangebyscores:按照排序返回指定順序內的值

zrangebyscores myzset 1 10 withscores //返回排序值在1到10包括1、10中的元素

    zcount:返回給定排序值中的元素個數

zcount myzset 1 10 //返回myzset中排序在1到10 包括1、10 的元素的個數

    zcard:返回給定有序集合中所有元素個數

card myzset //返回myzset 中所有元素個個數

     zremrangebyrank:刪除指定有序集合中指定索引區間中的元素;索引區間不是排序

zremrangebyrank myzset 1 4 //刪除myzset中索引在1到4的元素

    zremrangebyscore:刪除指定有序集合中指定排序區間中的元素;

zremrangebyscore myzset 1 10 //刪除myzset中排序在1到10的元素

?

轉載于:https://www.cnblogs.com/jackylee92/p/6857717.html

總結

以上是生活随笔為你收集整理的redis 类型、方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。