List命令

value值为LinkedList类型。

使用环境:

1,做大数据集合的增删。

2,任务队列。用户任务队列

链表查看

lrange  key  start  end:获取链表从start到end的元素值

start,end从0开始计数,也可为负数,若为-1则表示链表尾部的元素,-2表示倒数第二个,依次类推。

例如:list1  【0,1,2,3,4,5】,查到从0到第三个值

lrange    list1    0    3

两端添加

lpush  key  value1,value2,value3...:在key所关联list头部插入所有的value。

例如:lpush    list1    a    b    c    d

rpush  key  value1,value2,value3...:在该list尾部添加元素

两端删除(弹出)

lpop  key:从头部弹出元素,删除头部第一个元素。

rpop  key:从尾部弹出元素。

扩展命令

llen  key:返回指定key关联链表中元素的个数。

删除某种元素:效率极其低下

lrem  key  count  value:删除count个值为value的元素。如果count大于0,从头向尾遍历并删除count个值为value的元素。

例如:删除链表中所有的a元素。(注意:如果删除所有的,则count指定为0

lrem    list3        a

从头删除2个字母:"C"

lrem    mylist    2    C

如果从尾部到头删除两个字母C,则:

lrem    mylist    -2    C

通过索引替换元素:(效率不高)

lset  key  index  value:设置链表中的index的脚标的元素值,0代表头部,-1代表尾部。

在索引前/后插入元素:(效率不高)

linsert  key  before/after  pivot  value:在pivot元素前/后插入value这个元素。

例如:

linsert    list1    before    aaaa    cccc

rpoplpush  resource  destination:将链表中尾部元素弹出并插入到头部【循环操作】

例如:任务队列:要求把ist1中的d弹出,把元素插入到list2的头部

rpoplpush  list1  list2

循环链表:把list1的元素从头部插入到尾部,循环操作。

rpoplpush  list1  list1

Set命令

Redis操作中,涉及到两个大数据集合的并集,交集,差集运算,一般使用set。

添加

sadd    key    value1  value2  value3..

例如:

sadd    set1    a    b    c    d

取值

获取set中所有成员

smembers    key    

例如:smembers  set1

1,判断参数中指定成员是否在该set中,1表示存在,0表示不存在或者本身该key不存在。

sismember    key    member

例如:

sismember  set1  b

场景:会员有一个专门的集合,打开视频的适合,判断用户是在会员集合里面,如果不在就是普通用户。

删除

删除set中指定成员

srem    key    member1    member2    member3    ...

例如:从集合set1中删除b,d

srem    set1    b    d

集合运算

差集运算

返回key1和key2相差的成员,而且与key的顺序有关,即返回差集

sdiff    key1    key2...

例如:set1  a  b  c  d  

   set2  b  e

求哪些属于set1,但是不属于set2。

要求属于set1的,就需要把set1放在前面:命令如下:

sdiff    set1    set2

交集运算

返回交集

sinter    key1    key2    key3....

并集运算

返回并集

sunion    key1    key2    key3 ...

扩展命令

scard  key:获取set中成员的数量

例如:scard  set1  结果:4

场景:查看网站会员数量。

srandmember  key:随机返回set中一个成员

例如:srandmember  set1

sdiffstore  distination  key1  key2  key3 . . .:将key1,key2,key3相差的成员存储到distination上

sinterstore  disination  key1  key2  key3 . . :将返回的交集存储到distination上

sunionstore  distination  key1  key2  key3 . . .:将返回的并集存储到distination上

有序Set

集合里面数据有序,并且默认从小到大排序,不重复。并且每个元素都需要手动赋予一个分数

例如:一个集合里面需要存:小明,小红,小张:手动辅助:400  小明,200  小张,350  小红。

保存之后:集合中存的顺序是:小张,小红,小明。

集合倒序:小明  小红  小张

有序Set集合,专门用来做排行榜

赋值:

zadd    key    score    member    score2    member2    score3    member3。。。

例子:

zadd    set1    500    xiaozhang    300    xiaohong    100    xiaoqiang

因为set中默认按照从小到大排序:则set中的顺序是:100  xiaoqiang  300  xiaohong  500  xiaozhang

取值:

zcore key member返回指定成员的分数

例如:

zcore    set1    xiaoqiang:结果:100

zcard  key:返回集合中成员数量

删除:

zrem key member1  member2  member3:删除集合中指定成员

例如:

zrem    set1    xiaoqiang    xiaohong

范围查询:

zrange key start end [withscores] :获取集合中脚标为star到end的成员,[withscores]参数标明返回的成员包含其分数(由小到大)。

zrevrange key start end [withscores] :获取集合中脚标为star到end的成员,[withscores]参数标明返回的成员包含其分数(由大到小)。

例如:从set1集合查询所有元素:

zrange    set1    0   -1

要使得返回的结果带着分数:

zrange    set1    0    -1   [withscores]

结果:

扩展命令:

zremrangebyrank  key  start  stop;按照排名范围删除元素

例如把第一名到第二名删除:

zremrangebyrank    set1    0    1

zremrangbyscore  key  min  max:按照分数排名范围删除元素

例如:把200到300分范围的元素删除:

zremrangebyscore    set1    200    300

zrangebyscore  key  min  max[withscores] [limit  offset  count]:

返回分数在[min,max]之间的成员并按照分数从低到高排序,withscores,显示分数。limit  offset  count:offset表明从脚标为offset的元素

开始并返回count个成员。

例如:返回500,7500范围内的,其中从第一名开始的两位成员,并且显示分数。

zincreby  key  increment  member:设置指定成员的增加的分数,返回值是更改后的分数

例如:给小张分数加500

zcount  key  min  ax:获取分数  min  max之间的成员个数。

zrank  key  member:返回成员在集合中的排名。(索引从小到大)。

zrevrank  key  member:返回成员在集合中的排名。(索引从大到小)。

Redis学习(6)-常用命令的更多相关文章

  1. Redis学习笔记--常用命令

    以下为本人学习Redis的备忘录,记录了大部分常用命令 1.客户端连接redis服务端: ===启动Redis服务端 redis-server /yourpath/redis.conf ===启动Re ...

  2. Redis 学习之常用命令及安全机制

    该文使用centos6.5 64位    redis3.2.8 一.redis常用命令 键值常用命令: 1. keys 返回满足pattern的所有key. 127.0.0.1:6379> ke ...

  3. Redis学习笔记~常用命令总结

    回到目录 客户端redis-cli常用的命令总结 连接到服务器 redis-cli -h 127.0.0.1 -p 6379 --连接指定的redis服务器 发布/订阅, pub/sub模式运行在re ...

  4. Redis学习笔记-常用命令篇(Centos7)

    redis提供了丰富的命令,这些命令可以在linux终端使用.在各类语言中,这些命令都有对应的方法. 一.键值相关 1.keys 返回满足给定pattern的所有key 127.0.0.1:6379& ...

  5. redis学习-string常用命令

    keys * :查询所有的key值 set:为指定键设置对应的值 get:获取指定键的值 mset:一次传入多个键值对 mget:一次获取多个键的值 del:删除指定键 strlen:获取指定键值的长 ...

  6. redis 介绍和常用命令

    redis 介绍和常用命令 redis简介 Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统.由于 Redis 的键 ...

  7. Redis数据类型和常用命令

    Redis相较于其它的数据库虽然简单,但是要熟记所有命令的用法也并非易事.一个简单的技巧是通过要操作的数据类型来将这些命令进行结构化. 数据类型和对应命令 所有存储于redis中的数据都对应于一个键值 ...

  8. 一张图学习vim常用命令

    一张图学习vim常用命令

  9. goland学习-go常用命令使用

    goland学习-go常用命令使用 1.跨平台编译:env GOOS=linux GOARCH=amd64 go build 2.获取go第三方包:go get -u github.com/go-sq ...

  10. 记录redis安装及常用命令

    Redis安装及常用命令 一.安装 1.下载,解压,进入redis解压目录,make. make PREFIX=目录/redis install :安装到指定目录文件名为redis. 2.将解压目录里 ...

随机推荐

  1. DockManager 如何快速隐藏DockPanel z

    DockPanel在点击hide按钮时候如果鼠标不离开的话,panel还是没隐藏,某种情况下这种现象着实让人不爽,而且当鼠标离开后默认是很缓慢的隐藏 AutoHideSpeed不设置也可以,主要设置H ...

  2. Selenium2+python自动化53-unittest批量执行(discover)

    前言 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载用例了. 加载用例后,用unittest里面的Text ...

  3. struts2中<welcome-file>index.action</welcome-file>直接设置action,404的解决方案

    这几天的项目页面的访问全部改为.action访问,在修改首页时遇到了问题.将web.xml文件中<welcome-file>index.action</welcome-file> ...

  4. python opencv 人脸识别

    def findface(image): import cv2  frame=cv2.imread('n1.jpg') classifier=cv2.CascadeClassifier("h ...

  5. Kmeans算法原理极其opencv实现(转帖)

    原帖地址:http://blog.csdn.net/qll125596718/article/details/8243404 1.基本Kmeans算法[1] 选择K个点作为初始质心  repeat  ...

  6. iOS开发-plist文件增删改查

    plist第一次看到这个后缀名文件的时候感觉怪怪的,不过接触久了也就习以为常了,plist是Property List的简称可以理解成属性列表文件,主要用来存储串行化后的对象的文件.扩展名为.plis ...

  7. AngularJs 阻止事件运行,防止冒泡穿透事件

    ng-click 低啊用方法后 添加语句$event.stopPropagation(); <button type="button" ng-click="doSo ...

  8. 你应该了解的CSS语义化命名方式及常用命名规则

    CSS语义化命名 从上图我们可以大概看出这里有两种CSS的命名方式:1.结构化命名法:2.语义化命名法. 结构化命名法:根据页面中板块的位置而命名,如上图中的content-left,这时如果我们想把 ...

  9. (转)[原创]在ios android设备上使用 Protobuf (使用源码方式)

    自:http://game.ceeger.com/forum/read.php?tid=13479 如果你的工程只能以.Net 2.0而不能以.Net 2.0 subset运行,请看另外一个方法. 地 ...

  10. C语言打印字母金字塔(第一行是A 第二行是ABA ……)

    #include <stdio.h> #include <stdlib.h> int main() { int line;//代表行数 int i; char letter,c ...