转自:https://blog.csdn.net/ty4315/article/details/52050721

Redis是使用键值存储数据,key必须是字符串value支持五种数据类型,最新版本又新增加了两种这里暂不介绍。下面会介绍redis的一些基本命令的使用。

首先启动redis并登录客户端。

Redis中的命令不区分大小写。

一:基本命令及string类型

1:help set

帮助命令

2:select 1

Redis默认有16个库通过select命令切换,库之间隔离默认登录0号库

3:del a

删除key a

4:keys *  key a*

查询库中已存在的key

5:exists a

查看当前库中是否存在keya,存在返回1

6:set a 1

Key:a  value:1

7:get a

查看key为a的value值

8:mset a 1 b 2

一次创建多个key

9:mget a b

一次查看多个key

10:append a x

向key中追加字符串

11:strlen a

返回key a 的长度

12:incr b;key b的value加1

decr b; key b的value减1

incrby b 2; key b的value按步长加

decrby b 2; key b的value按步长减

incrbyfloat b 0.9; key b的value加0.9

incrbyfloat b -0.9; key b的value减0.9

此命令要求value的值可以进行加减运算

二:hash类型

Hash类型的key为字符串value为key:value且value只能为字符串。格式<string:<string:string>>,关键字h。

13:hset user_01 namejack

创建键user_01,value为<name:jack>

14:hget user_01 name

查看键user_01,value中key为name的值

15:hmset user_01 nametom age 10

一条命令创建多个

16:hmget user_01 nameage

一条命令查看多个

17:hexists user_01 name

查看键user_01中key为name的value

18:hdel user_01 name

删除键user_01中key为name

19:hiincrby user_01 age2

键user_01种key为age的按步长增加,也可负数减

20:hkeys user_01

显示键user_01中所有的key

21:hvals user_01

显示键user_01中所有的value

22:hlen user_01

显示键user_01中key的个数

23:hgetall user_01

显示键user_01中所有的键值对

三:List类型

List类型是有序的采用双向链表LinkedList实现,访问两边数据快中间慢,最多可以有2的32次方-1个元素。格式<string,<string,string,…>>,关键字l。

24:lpush list1 a b c

创建键为list1,value为a,b,c。顺序是从左向右开始添加,所以执行lrange list1 0 -1输出是c b a

25:lrange list1  0 -1

查看键list1全部元素

26:lindex list1 0

查看键list1中下标为0的元素

27:lset list1 0 xx

更改键list1中下标为0 的元素

28:llen list1

显示键list1的长度,元素个数

29:lpop list1

返回并删除键list1中最左边的value

30:rpop list1

返回并删除键list1中最右边的value

pop让我想起python中列表和字典也有类似的方法功能也相近

31:ltrim list1 0 4

按下标截取键list1中的元素,下标如果都超出实际范围则list1被删除

四:set类型

Set数据类型不重复,无序,最多可以有2的32次方-1个元素,关键字s。

32:sadd set1 a b c d

创建键set1,value为字符串a,b,c,d

33:smembers set1

查看键set1

34:sismember set1 a

查看键set1中是否含有字符串a

35:srem set1 a

删除键set1中的字符串a

36:spop set1

随机删除键set1中的一个元素

37:scard  set1

显示键set1中的元素个数

38:sdiff set1 set2

显示set1中元素不存在于set2中的元素

39:sinter set1 set2

显示set1与set2的交集

40:sunion set1 set2

显示set1和set2的并集

41:sinterstore  set3  set1  set2

将set1和set2的交集存入set3中

注:sdiff,sinter,sunion会影响性能,最后将结果存起来。

五:sorted set类型

Sorted set是在set的基础上增加一个分值并根据这个分值进行排序,关键字z。

我们可以改变元素的分值以便于调整元素位置

它比list更耗内存

使用散列表读取中间数据速度快

若元素的分值一样则按照ASCII的顺序排列

42:zadd  zset1 1 a 2 b

创建zset1,元素a的分值为1元素b的分值为2

43:zscore zset1 a

查看zset1中元素a的分值

44:zrange zset1  0 10

查看zset1中,按下标0到10查看

45:zrevrange  zset1 0 -1

查看zset1中元素,倒序。

46:zincrby zset1 1 a

元素a的分值增加1,负数时为减少

47:zcount zet1 0 4

返回zset1中分值0到4的元素的个数

48:zcard  zset1

返回zset1中元素个数

49:zrem  zset1 a

删除zset1中的元素a

50:zrangebyscore  zset1 0 4

显示zset1中分值大于等0小于等于4的元素

zrangebyscore  zset1 0 (4

显示zset1中分值大于等0小于4的元素

51:zadd  zset1 +inf n

增加n元素分值正无穷

Zadd  zset1 –inf m

增加m元素分值负无穷

52:zrangebyLex  zset1 [a  [wangww

若zset1中的分值都一样则可使用此命令按照元素名称的顺序显示。此命令需2.8.9版本以上

zrangebyLex  zset1 [a  [wangww

显示元素名称大于等于a 小于等于wangwu的元素,值中[表示大于等于  (表示大于

53:zrank zset1 a

显示zset1中a的下标

六:键的生存时间

54:expire name 10

expire可以设置一个key的有效时间,生存时间单位是秒。

55:ttl name

ttl是查看key还剩下多少有效时间,默认是永久有效返回-1,当超过有效时间后返回-2。

56:persist name

Persist命令可以取消一个key的剩余时间使之成为永久有效

57:expireat name 1471849200

Expireat可以指定一个key在什么时间失效,另外我们可以在linux下使用date来得到一个时间点

[root@hadoop0~]# date +%s

1469881946

[root@hadoop0~]# date --date="2016-08-22" +%s

1471849200

实际工作中可以用来实现手机验证码,电商秒杀,游戏排行榜等功能,指定剩余有效时间。

七:其它命令

58:type name

查看key值的类型

59:brpop key1 key2 3

从key1开始取值

60:publish subscribe 发布订阅

Subscribe订阅一个频道,publish命令发布的内容通过subscribe可以看到,取消订阅功能是unsubscirbe。

Psubscribe订阅一批频道,unpsubscribe取消

下图显示在频道ch1中发布’my nameis jack’

下图显示订阅了ch1频道并查看到了my nameis jack

以下是批量订阅发布

61:flushall  flushdb

Flushall命令清除redis实例的所有数据

Flushdb命令清除当前数据库的所有数据

总结:

1:set命令会强制废除一个key的原有类型将其变更为字符串类型。

2:redis是按照key来存储数据的它没有提供按条件查询,但可以使用zrangebyscore和zrangebylex来实现条件查询。

Redis命令操作简介及五种value数据类型的更多相关文章

  1. nosql Redis命令操作详解

    Redis命令操作详解 一.key pattern 查询相应的key (1)redis允许模糊查询key 有3个通配符 *.?.[] (2)randomkey:返回随机key (3)type key: ...

  2. javascript中五种基本数据类型

    前言: JavaScript中有五种基本数据类型(也叫做简单数据类型)分别为:undefined.null.bolean.number.string:另外还含有一种复杂的数据类型:object. 深入 ...

  3. 【JavaScript的五种基本数据类型及转换】

    js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Null,Undefined),和一种混合数据类型就是特殊的(Object). "undefined& ...

  4. JavaScript 基础(一) - JavaScript的引入方式,JavaScript 变量命名规则,JS 的五种基本数据类型,ECMAScript 算数运算符,逻辑运算符

    JavaScript的引入方式 直接编写 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...

  5. js五种基本数据类型:string, number, boolean, null, undefined

    /** * 五种基本数据类型:string, number, boolean, null, undefined */ // undefined // 声明变量foo,未声明变量bar var foo; ...

  6. 【Redis】一、Redis简介及五种数据类型

    (一)Redis简介   Redis(Remote Dictionary Server)是一个使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value的开源 ...

  7. redis的五种基本数据类型

    redis基本数据类型 redis一共分为5中基本数据类型:String,Hash,List,Set,ZSet 第一种String String类型是包含很多种类型的特殊类型,并且是二进制安全的.比如 ...

  8. redis学习(三)五种数据结构

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 1.string string类型是Redis最基 ...

  9. Redis数据结构详解,五种数据结构分分钟掌握

    redis数据类型分为:字符串类型.散列类型.列表类型.集合类型.有序集合类型.redis这么火,它运行有多块?一台普通的笔记本电脑,可以在1秒钟内完成十万次的读写操作.原子操作:最小的操作单位,不能 ...

随机推荐

  1. 【NOIP2018】为什么这么无力啊

    菜鸡又要爆零了 辛辛苦苦背板子结果考时候脑子一片空白 第一题线段树调了半小时 看完三道题两道写暴搜一道写暴力(说是暴搜,觉得更像写了个背包) 别提暴搜还忘记剪枝. . . . . . 我觉得考场上最菜 ...

  2. C++对象内存布局 (二)

    在上一篇文章中讨论了C++单一一般继承的对象内存布局http://www.cnblogs.com/uangyy/p/4621561.html 接下来继续讨论第二种情况: 2.单一的虚拟继承:有成员变量 ...

  3. 安卓Recovery模式该怎么用?【转】

    本文转载自:http://android.baike.com/article-109914.html 安卓系统出了名的刷机刷机再刷机,说起刷机就不能不谈Recovery模式,这项刷机过程中最重要的一到 ...

  4. hdoj--5625--Clarke and chemistry(枚举)

    Clarke and chemistry Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Oth ...

  5. How to build CppCMS 1.x.x

    How to build CppCMS 1.x.x Requirements Mandatory Requirements Recommended Dependencies Suggested Dep ...

  6. DCloud-JS-MUI-JS:utils.js

    ylbtech-DCloud-JS:utils.js 1. 导航返回返回顶部 1. var oldBack = mui.back; mui.back = function () { mui.back ...

  7. C++ 对象的赋值和复制 基本的

    对象的赋值 如果对一个类定义了两个或多个对象,则这些对象之间是可以进行赋值,或者说,一个对象的值可以赋值给另一个同类的对象.这里所指的值是指对象中所有数       据的成员的值.对象之间进行赋值是“ ...

  8. [Apple开发者帐户帮助]六、配置应用服务(1.1)Apple Pay:配置Apple Pay(iOS,watchOS)

    Apple Pay允许用户在您的应用中购买商品和服务.要将Apple Pay 权利添加到您的App ID,请先创建商家标识符,然后启用Apple Pay并创建付款处理证书. 或者,您可以使用Xcode ...

  9. UOJ 129/BZOJ 4197 寿司晚宴 状压DP

    //By SiriusRen #include <cstdio> #include <algorithm> using namespace std; ; struct Node ...

  10. PHP CURL抓取网页 simple_html_dom类

    抓取网页数据后 数据录入到discuz中 <?php include('simple_html_dom.php'); function urlText(){ $url = 'http://www ...