码迷,mamicode.com
首页 > 其他好文 > 详细

redis数据类型操作

时间:2015-04-06 06:30:22      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:redis

7.数据类型

set name zsj

get name

setnx name :不会覆盖原来的值,如果存在不更新,如果不存在择设置

setex:设置并指定有效期

setex haircolor 10 red :设置haircolor的有效时间为10秒

没有设置有效期代表永久有效

setrange name 6 gmail.com:从第六个字符开始替换成gmail.com【替换同等长度】

mset key1 valus1 key2 value2:同时设置两个值

msetnx

getset:获取旧值并设置新值

getset key6 30

getrange:获取子字符串

getrange name 0 5:返回name的第0个到第5个字符串之间的

mget:批量获取

incr key:自增一次

incrby key 6:每次增6,不存在key会默认设置为0

decr:自减

decrby

append key value:给key追加value,返回最终字符串长度

strlen:获取键的字符串长度【strlen key】

hset key property value

hset user:001 name zsj

hget user:001 name

hsetnx

hmset user:001 name hello age 10

hmget user:001 name age

hincrby user:001 age 5

hexist user:001 age:判断age字段是否存在

hlen user:001 :返回hash中的键的数量

hdel user:001 age:删除hash对象中的age

hkeys user:001:返回hash对象中的所有字段

hvals user:001:返回hash对象中所有字段的value值

hgetall user:001:获取某个hash对象中所有的字段和其对应的值


8.lists类型与操作[push/pop]【本身是为栈的方式放入数据】

redis中lists为双向链表,都可以从头和尾放数据和取数据,既可以作为栈也可以作为队列

lpush mylist "hello" #从头部压入一个元素,返回元素的个数

lrange mylist 0 -1  #从第一个元素一直到尾的第一个元素

rpush list2 "zsj" #从尾部压入元素

linsert mylist before "hello" "world" :在hello前面压入一个world元素【注:从尾到头的方向】

lset mylist 0 "hello":给第0个位置的元素重新赋值

lrem list 1 "hello":从list中删除1个为hello的元素,返回成功删除的个数【从key对应的list中删除n个和value相同的元素】

ltrim保留key的值的范围之内的数据

ltrim list 1 -1 :保留从1开始到最后一个元素

lpop:从头部删除元素,并返回删除元素

rpoplpush:从第一个list的尾部移除元素并添加到第二个list的头部

rpoplpush list1 list2

lindex:返回名称为key的list中index位置的元素

lindex list 1

llen返回list的大小


9.set类型

sadd mysset "hello"

smembers myset #查看元素

srem myset "hello" #删除元素

spop 随机返回并删除名称为key的set当中的某一个元素

spop myset

sdiff set1 set2 :[返回所有给定key与第一个key的差集]返回set1中在set2中所没有的

sdiffstore set3 set1 set2:将set1与set2的差集存储到set3中

sinter set1 set2 :取两个集合中的交集

sinterstore set3 set1 set2 :将set1,set2中的交集存储在set3中

sunion set1 set2 :取set1,set2的并集

sunionstore set3 set1 set2

smove [从第一个key对应的set中移除member并添加到第二个对应的set中]

smove set1 set2 value

scard set :返回集合中元素的个数

sismember:测试某个元素是否为set中的元素

sismember set value :测试value是否set中的元素

srandmember:随机返回set中的某一个元素,但不删除

srandmember set


10 sorted sets有序集合

zadd 向名称为key的zset中添加元素member,score用于排序。如果该元素存在,则更新其顺序

zadd myzset 1 "one"

zadd myzset 2 "two"

zadd myzset 3 "two" :此时元素two不会更新进去,但是排序会更新为3

zrange myzset 0 -1 withscores ##withscores的目的是输出顺序号

zrem 删除名称为key的zset中的元素member

zrem set value

zincrby 对set中的顺序指定增加或减少

zincrby myset 2 "one" :将one的顺序值增加2,如果one不存在,则添加此元素

zrank 返回zset中元素的索引,从小到大排序

zrank myset "two" :返回two元素的索引值

zrevrank 从大到小排序

zrevrange 倒序查看zset中的member及排序情况

zrevrange myzset 0 -1 withscores 

zrangebyscore myzset 2 3 withscores 获取2到3的所有元素

zcount myzset 2 4 :统计2到4之间的元素的个数

zcard myzset :返回集合中所有元素的个数

zremrangebyrank:删除某个区间的元素并返回剩余元素【根据索引删除】

zremrangebyrank myzset 1 1 [从第一个位置开始删除1到1之间的元素]

zremrangebyscore myzset 1 2 [删除给定区间的元素]


本文出自 “逆天” 博客,请务必保留此出处http://xxzjzsj.blog.51cto.com/3052058/1629163

redis数据类型操作

标签:redis

原文地址:http://xxzjzsj.blog.51cto.com/3052058/1629163

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!