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

redis基本命令

2018-02-09 00:49 316 查看
字符串类型
1,key *
2, KEYS *
3, exists
4, del bar    //不支持通配符
怎么使用通配符删除一些键?
del 不支持但是可以使用linux 管道和xargs命令
      redis-cli keys "user:*" | xargs redis-cli del
  或。redis-cli del `redis-cli keys "user:*"`
5. type foo
字符串类型件 存储的数据的最大容量是512M
7, get key
8,    incr num

实例-blog
post:文章ID:page.view   //文章的访问量
对象类型(复数): count  //当前类型对象的数量; 生成自增ID
命令拾遗
incrby bar 2
decr key
decrby key decrement
incrbyfloat bar 2.7
append key " world"
strlen key
set key 你好
strlen key
mget key [key...]
mset key value [key value...]
位操作
getbit key offset
setbit  key offset value
bitcount key  [start] [end]   //位为 1 个数
bitop operation destroy key [key...]
bitpos foo 1
用位来存储用户的性别,getbit 和setbit 的时间复杂度都是o(1),所以读取二进制位值性能很高
3.3 散列类型
注意,字段值只能是字符串,也就是说不能嵌套其他数据类型
一个散列类型键可以包含至多 2^32-1 个字段
命令
hset key field value
hget key field
hmset key field value [field value...]
hmget  key field [field...]
hgetall  key
注意 hset 不区分插入和更新操作,之前不存在返回1,更新 返回0。 进一步如果键本身不存在,hset还会自动建立它
有例外 如 set 可以覆盖已存在的键而不论原来键是什么类型
hexists car color   //判断一个字段是否存在
hsetnx key field value //当字段不存在时赋值
hdel car price

实践存储文章数据
命令拾遗
hkeys carhvals  car
hlen key  //获取字段数量

列表最大数量:与散列表键最多容纳的字段数相同,一个列表类型键最多能容纳2^32 -1 个元素。
命令lpush  key value [value….]rpush key value [value…]
lpop keyrpop key
llen 
lrange key start stop  //包含两端的元素
lrange numbers -2 -1  //
lrem key count value  //count > 0 从列表左边开始删除,count < 0 从列表右边开始删除,当count = 0 时lrem 命令会删除所有值为value的元素
命令拾遗lindex key index   //获得指定索引的元素值lset key index value  //ltrim key start end    
linsert key BEFORE|AFTER pivot value    查找值为pivot的元素,将value插入到前面或后面

rpoplpush soure destination   //当source和destination 相同时,rpoplpush 命令会不断地将队尾的元素移到队首,借助这个特性可以实现一个网站监控系统,监控程序不断使用rpoplpush命令循环地从队列中取出一个网址来测试可用性。好处是在程序执行过程中仍然可以不断地向网址列表中添加新网址,整个系统容易扩展,允许多个客户端同时处理队列

集合类型       一个集合键可以存储治多2^32 -1 个命令:
sadd key member [member] [member…]     //返回成功加入元素数量srem key member [member…]
smembers key   //获得集合中的所有元素sismember key member   //判读元素是否在集合中sdiff key [key…]
sinter key [key…]   //交集
sunion key [key…]  //

实践posts 表结构post_idpost_title
tags表结构tag_idtag_name
posts_tags 表结构post_idtag_id
select p.post_title   from posts_tags pt,  posts p, tags t where pt.tag_id = t.tag_id and (t.tag_name in(‘java’,’mysql’,’redis’)) and pt.post_id = p.post_id           group by p.post_id having count(p.post_id) = 3;
命令拾遗scard key  //获取集合中元素的个数
//进行集合运算并将结果存储sdiffstore destination key [key…]
sinterstore destination key [key…]
sunionstore destination key [key…]

//随机获得集合中的元素srandmember letters
srandmember letters 2   //随机取出两个不重复的元素srandmember letters 2   //随机取出两个元素,可以重复。
srandmember letters -10  //返回的数据似乎并不非常的随机,集合类型采用的存储结构(散列表)造成的。下次要查找b时就可以用同样的散列函数再次计算b的散列值 并直接到相应的(bucket)中找到b.  当两个不同的元素散列值相同时出现冲突,Redis 使用拉链法来解决冲突,所以在桶中的元素数量越少,其被随机选中的可能行就越大。
spop key     //随机选择一个元素弹出

有序集合类型 集合中的每个元素都是不同的,但是它们的分数却可以相同。 有序集合类型使用散列表和跳跃表实现的,所以即使读取位于中间部分的数据速度也很快(时间复杂度是O(log(N).
 命令:          zadd key score member [score member…]
         分数不仅可以是整数,还支持双精度浮点数。
       zadd testboard +inf c;       zadd testbord  -inf d;
zscore key member    //获得元素的分数
//获得在某个范围的元素列表zrange key start stop [withscores]
zrevrange key start stop [withscores]   //按元素分数从大到小排序
zrange命令的时间复杂度为O(log n+m)  ; n 为有序集合的基数,m为返回的元素个数
如果分数相同,Redis 会按照字典顺序(即 0 < 9 < A <Z <a <z )来进行排序,如果是中文怎么排序?取决于中文的编码方式。

//获得指定分数范围的元素zrangebyscore scoreboard 80 100; 
zrangebyscore scoreboard 80  (100;
zrangebyscore scoreboard (80 +inf
zrangebyscore scoreboard 60 +inf limit 1 3 //获得分数高于60分的第二个人开始的3个人 ;和SQL 中 limit offset count 用法相同
zrevrangebyscore scoreboard 100 0 limit 0 3 //
zincrby key increment member   //增加某个元素的分数
实践按点击量排序zrevrangebyscore 命令还可以轻松获得指定时间范围的文章列表,借助这个功能可以实现类似wordPress的按月份查看文章功能
命令拾遗zcard key
zcount key min max //获得指定范围内的元素个数
zcount scoreboard (89 +inf
//删除一个或多个元素zrem key member [member…]
//按照排名范围删除元素zremrangebyrank key start stop
//按照分数范围删除元素zremrangebyscore key min max
//获得元素的排名zrank key member        //从小到大排名,分数最小的排名为0zrevrank key member

7. 计算有序集合的交集
zinterstore destination numkeys key [key…] [WEIGHTS weight [weight…]]  [AGGREGATE SUM|MIN|MAX
SUM(也是默认值)
zinterstore sortedSetsResult  2   sortedSets1  sortedSet2
zinterstore sortedSetsResult 2  sortedSets1  sortedSets2  AGGREGATE MIN
zunionstore
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: