您的位置:首页 > 数据库 > Redis

redis数据类型操作

2015-04-05 23:38 330 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: