Redis命令操作简介及五种value数据类型
转自: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数据类型的更多相关文章
- nosql Redis命令操作详解
Redis命令操作详解 一.key pattern 查询相应的key (1)redis允许模糊查询key 有3个通配符 *.?.[] (2)randomkey:返回随机key (3)type key: ...
- javascript中五种基本数据类型
前言: JavaScript中有五种基本数据类型(也叫做简单数据类型)分别为:undefined.null.bolean.number.string:另外还含有一种复杂的数据类型:object. 深入 ...
- 【JavaScript的五种基本数据类型及转换】
js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Null,Undefined),和一种混合数据类型就是特殊的(Object). "undefined& ...
- JavaScript 基础(一) - JavaScript的引入方式,JavaScript 变量命名规则,JS 的五种基本数据类型,ECMAScript 算数运算符,逻辑运算符
JavaScript的引入方式 直接编写 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- js五种基本数据类型:string, number, boolean, null, undefined
/** * 五种基本数据类型:string, number, boolean, null, undefined */ // undefined // 声明变量foo,未声明变量bar var foo; ...
- 【Redis】一、Redis简介及五种数据类型
(一)Redis简介 Redis(Remote Dictionary Server)是一个使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value的开源 ...
- redis的五种基本数据类型
redis基本数据类型 redis一共分为5中基本数据类型:String,Hash,List,Set,ZSet 第一种String String类型是包含很多种类型的特殊类型,并且是二进制安全的.比如 ...
- redis学习(三)五种数据结构
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 1.string string类型是Redis最基 ...
- Redis数据结构详解,五种数据结构分分钟掌握
redis数据类型分为:字符串类型.散列类型.列表类型.集合类型.有序集合类型.redis这么火,它运行有多块?一台普通的笔记本电脑,可以在1秒钟内完成十万次的读写操作.原子操作:最小的操作单位,不能 ...
随机推荐
- 最经典的SDK程序结构 HelloWin
程序运行效果:在创建窗口的时候,播放一个声音.且在窗口的客户区中央画一句文字:Hello, Windows 98!,无论程序怎么移动.最大化,文字始终在程序的中央部位. 程序总共分为六个步骤:定义,注 ...
- wesome-android
awesome-android Introduction android libs from github System requirements Android Notice If the lib ...
- bzoj3957
数学+模拟 细节很多 首先我们发现,如果两个区间已经包含,那么可以输出empty,一个数能通过变换得到另一个区间的数,这个区间的大小必须小于等于终点区间的大小.加法不会改变区间大小,只有乘法会改变,而 ...
- Struts和Spring MVC的比较(非原创)
文章大纲 一.Spring MVC项目例子二.Struts项目例子三.Struts和Spring MVC对比四.参考文章 一.Spring MVC项目例子 https://www.jianshu. ...
- Zeppelin0.6.2+sparkR2.0.2环境搭建
0.序 先吐槽一下网上旧版本的Zeppelin和R的安装,让我折腾了几个小时. 不过最终还是调通了也不容易,其实我现在一点R都没有学呢,只是刚看了一节课,但是这个工具既然出现在了Spark中,我想它还 ...
- [Luogu 2216] [HAOI2007]理想的正方形
[Luogu 2216] [HAOI2007]理想的正方形 题目描述 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. 输入输出格式 输 ...
- android 将手机号中间隐藏为星号(*)
){ StringBuilder sb =new StringBuilder(); ; i < pNumber.length(); i++) { char c = pNumber.charAt( ...
- Android 第一行代码(第二版)分享
今天从网上好不容易看到了别人转发的pdf版的 第一行代码通过下载我把它存在了百度云里面了与大家共享 http://pan.baidu.com/s/1bRztF4
- 【sqli-labs】 less26 GET- Error based -All you SPACES and COMMENTS belong to us(GET型基于错误的去除了空格和注释的注入)
看了下源码 所有的注释形式和反斜线,and,or都被了过滤掉了 单引号没有过滤 空格也被过滤了 http://localhost/sqli-labs-master/Less-26/?id=1' htt ...
- static关键字的定义与使用
static关键字概述 关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的.也就是说,既然属于类,就可以不靠创建对象来调用了. 1 ...