redis 类型、方法
之前使用redis,現在對所有redis方法做一個總結;
string類型
形式:key=>value;
說明:最簡單的類型;一個key對應一個value,value保存的類型是二進制安全的,string可以包含任何數據,比如圖片或者序列換的對象
方法:
set:設置key對應的值為string類型的value;如果存在則修改,否則添加;返回ok
set name aaasetnx:設置key對應的值為string類型的value;如果存在,失敗返回0,不存在則添加,成功返回value;nx為not exists 的意思
setnx name aaasetex:設置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為aaa2msetnx:一次性設置多個key的值,成功返回OK表示所有值被設置了,失敗返回0表示沒有值被設置了;不會覆蓋已經存在的key
msetnx name4 aaa4 name5 aaa5 //設置name4為aaa4,name5為aaa5 如果其中一個存在則返回0,不改變任何;成功返回1getset:設置key的值,并且返回一個key的舊值,舊值不存在則返回空,新增一個新值;
getset name5 aaa5 //設置name5的值為aaa5 并返回name5的舊值,不存在則返回nilgetrange:獲取key對應的string的子字符串;有則返回子字符串,沒有則返回空字符串
getrange name5 0 2 //返回key為name5的字符串中下表0到2的子字符串? get:獲取key對應的value值
get name5mget:批量獲取值
mget name1 name2 name3 name4 //返回name1,name2,name3,name4的值,不存在則返回nilincr:對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的值追加bbbstrlen:返回指定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的值為aaahmset:批量設置hash中的過個field
hmset myhash field1 value1 field2 value2 field3 value3? hincrby:指定hash field 加上指定值
hincrby myhash field valuehexists:判斷指定hash中字段是否存在
hexists myhash fieldhlen:指定hash中field的數量
hlen myhashhdel:刪除指定hash中的field
hdel myhash fieldhkeys:獲取指定hash中所有的field
hkeys myhashhvals:獲取指定hash中所有的value
hvals myhashhgetall:獲取指定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前面插入bbblset:修改指定list指定下標的元素值;成功返回OK;
lset mylist index value //將mylist中下標為index的值替換為valuelrem:從指定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中是否存在valuesrandmember:隨機返回指定個數的元素;但不刪除;
srandmember myset1 count //隨機返回myset中count個元素,但不刪除sorted set 有序集合
格式:storeset:value store
說明:stored set是有序集合,無需集合的升級版;在set基礎上添加了一個數序屬性,該屬性在添加的時候可以指定;每次在zset集合添加設置后,集合會自動按照書序排序
方法:
zadd:向有序結合中添加元素和順序,當添加同樣順序的不同值時,相同順序不同值會按照插入順序排序,最先插入的在上面,當插入的元素已經存在則失敗;就是排序不唯一,值已定唯一;
zadd myzset order value //向myzset中添加value元素 排序是orderzrange:查看有序列表中的元素;可指定加上順序;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 类型、方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: codeforces problem 7
- 下一篇: (转载)spring配置hibernat