Redis的几大数据类型常用命令总结
来源:互联网 发布:adobe cs5 mac破解版 编辑:程序博客网 时间:2024/06/05 06:23
redis 默认有16个库,编号从0开始,0~15;
统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上;
redis的索引都是从0开始的;
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
1、key关键字
keys * #查看当前库所有keyFLUSHDB #删除当前库的所有keyFLUSHALL #删除所有库的所有keyDBSIZE #查看多少个keyEXIST k1 #判断k1是否存在move k1 2 #移动k1至2号库 (当前库就没了)ttl k1 #查看k1存活时间, -1:永久有效;-2:已过期(过期相当于删除,不在redis内存中了)DEL k1 #删除k1(相当于已过期)type k1 #查看k1的数据类型set k1 lbh # 赋值,如果k1里已存在值,再次设置会自动覆盖原有值
2、String类型
String是redis最基本的类型, 一个key对应一个value。 string类型是二进制安全的。意思是redis的string可以包含任何数据, 一个键最大能存储512MB。
1、append #追加字符串(k1 原值为lbh) append k1 123 #结果为6, k1的值为 lbh1232、strlen k1 #结果为6, 查看k1的长度3、incr k2 #k2的值必须为数字,否则报错,递增值1 incrby k2 3 #k2值递增3, 自己设定递增长度值 #decr 与 decrby 递减同理4、范围内取设值 getrange k1 0 -1 #取范围,(0 -1:取全部;0 3:取第0个字符到第3个字符) setrange k1 0 xxx #在第0个位置添加xxx, 设定在哪个位置加什么数值5、setex k3 10 v3 #设置k3的生存时间是10秒,值为v3 setnx k4 v4 #如果存在v4返回0,不存在返回16、mset k1 v1 k2 v2 k3 v3 k4 v4 #同时进行多值赋值 mget k1 k2 k3 k4 #取出多值7、msetnx k4 v4 k5 v5 # k4、k5如果都不存在返回1,说明设值成功,如果有一项存在返回0,说明设值失败 mget k4 k5 #取出多值 get k4 #取出单值
3、List 类型
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
1、 lpush list01 1 2 3 4 5 #创建集合list01 并添加元素 1 2 3 4 5 rpush list02 1 2 3 4 5 #创建集合list02 并添加元素 5 4 3 2 12、 lrange list01 0 -1 #获取list01 集合里的数据3、 lpop list01 #获取集合list01顶层元素 1 rpop list02 #获取集合list02底层元素 14、lindex list01 3 #获取集合list01第三号位的元素5、rpoplpush list01 list02 #将list01的顶层元素移入list02的顶层下标上6、lset list01 1 x #将集合下标为1的元素值改为 x7、linsert list01 before x java #在值为 x 的前面插入元素java linsert list01 after x oracle #在值为 x 的后面插入元素oracle
性能总结:
它是一个字符串链表,left、right 都可以插入添加:
如果键不存在,则创建新的链表;
如果值全移除,对应的键也就消失了;
链表的操作无论是头和尾效率都很高,但是假如对中间元素进行操作,效率有点底下。
4、Set类型
Redis的Set是string类型的无序、不重复集合。 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
1、sadd set01 1 2 3 4 5 1 2 3 #创建集合set01, 并添加元素 1 2 3 4 5 (自动去重)2、smembers set01 #查看set01 里的数据 scard set01 # 查看个数3、srem set01 3 #移除集合里值为 3 的数据4、srandmember set01 3 #随机输出3个数据5、spop set01 #随机出栈6、smove set01 set02 5 #将set01里的5 移动到set02里7、sdiff set01 set02 # set01 在 set02 中的差集 sinter set01 set02 # set01 和 set02 的交集 sunion set01 set02 # set01 和 set02 的并集
5、Hash类型
Hash 关键字是以 key value (key value) value 也是以键值对的形式存在的。
1、hset user id 201201036 #创建一个对象 user 属性为 id, 值为 201201036 hget user id #获取 user 对象的 id 的属性值2、hmset account id 11 name lbh age 23 addr jinan #创建account对象,添加属性id name age addr,值分别为:11 lbh 23 jinan hmget account id name age addr3、hgetall account #获取account 对象的属性和值4、hdel user id # 删除 user 的属性 id5、hlen user #获取对象user的个数6、hexists user #判断对象user是否存在7、hkeys user #获取对象user的key的数据 hvals user #获取对象user的value的数据8、hincrby user id #user 对象的 id属性 字加 1 hincrbyfloat account score 0.5 #account 对象的score属性自加 0.59、hsetnx account email abc@163.com # 如果不存在email属性 则返回 1,否则存在 返回 0
6、Zset (sored set) 集合
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
在set基础上,加一个score值。之前set是k1 v1 v2 v3,现在zset是k1 score1 v1 score2 v2
1、zadd zset01 60 v1 70 v2 80 v3 90 v4 100 v5 #创建集合zset01 60 v1 ...2、zrange zset01 0 -1 #查看所有值: v1 v2 v3 v4 v5 zrange zset01 0 -1 withscores #查看所有值包括 score 值3、zrangebyscore zset01 60 90 #查看score值范围在 60 到 90 之间的值 zrangebyscore zset01 60 (90 #查看score值范围在 60 到 90 之间的值(不包含90) zrangebyscore zset01 60 90 limit 2 2 #查看score值范围在 60 到 90 之间从第二个截取2个值4、zrem zset01 v5 #移除v5的值5、zcard zset01 #统计值的数量6、zcount zset01 60 80 #统计60 到 80 之间的个数 zrank zset01 v4 #查看v4的下标 zscore zset01 v5 #查看v4的值7、zrevrank zset01 v4 #逆序后查看v4的值 zrevrange zset01 0 -1 #逆序查看范围 zrevrangebyscore zset01 90 60 #逆序查看score 值的范围
- Redis的几大数据类型常用命令总结
- redis常用命令及redis5大数据类型
- redis数据类型Hash的常用命令
- redis数据类型Set的常用命令
- redis数据类型SortedSet的常用命令
- redis数据类型List的常用命令
- redis的常用命令及数据类型
- Redis的五大数据类型
- Redis大总结之一:Redis 五大数据类型及操作
- Redis常用命令(String数据类型的操作)
- Redis常用命令(String数据类型的操作)
- Redis基本的数据类型和常用命令
- Redis数据类型和常用命令
- redis五大数据类型的基本操作
- 4、redis的五大数据类型
- Redis五大数据类型
- Redis五大数据类型
- Redis 讲解系列之 Redis的五大数据类型
- LeetCode11. Container With Most Water
- HDU-2159 FATE (二维背包)
- C连接MySQL数据库开发 --http://blog.csdn.net/xyang81/article/details/26814633
- 安装及配置Maven环境变量
- Rxjava2
- Redis的几大数据类型常用命令总结
- Swift中的 Thread1:signal SIGABRT 错误解决方法
- 行人再识别 + 行人对齐
- 【小白的CFD之旅】14 实例反思
- SQL语言的分类
- LabVIEW使用两三年感触
- 巧用Fiddler代理来禁止资源缓存,从而达到每次都是从服务器加载最新的资源
- 行指针遍历二维数组
- DAY14