当前位置: 首页> 技术文章> Redis 数据操作

Redis 数据操作



一、Redis 比 Memcached 数据库最大的亮点就在于它支持的数据类型是非常多的,在 Redis 里面支持有字符串数据、hash 数据、列表(List)数据、散列集合(Set)、有序集合。 

NoSQL 数据库的特点就是不使用 SQL 语句,它利用一些自己的命令来进行替换。


1、 进行数据的设置(key=test、value=java):set testjava


2、 根据 key 取得数据:get test;


3、 默认情况下可以进行内容的修改操作,此时只需要使用 set 命令就可以使用新的内容替换掉旧的内容,但是很多情况往往会出现一种判断需求,即:如果设置的 key 不存在,才进行设置,否则就不设置。 

· 不覆盖设置:setnx test zookeeper; 

· 如果此时设置成功返回一个数字 1(C 语言里面非 0 就是 true),如果存在返回 0(false);


4、 有效期保存:setex 138110112 10 828282;


· 此时的数据在 10 秒之内有效,超过了 10 秒之后该数据将自动销毁; 

· 如果要想查看数据的有效时间,则可以使用“ttl key”的形式查看: 

|- 此时如果指定的 key 存在,那么就可以取得剩余的存活时间(秒),如果该 key 已经消失了,那么返回-2; 

· 如果现在突然有一个不过期操作:persist key; 

5、 设置多个 key 的信息:mset test java bigdata hadoop service tomcat;


6、 不覆盖设置:msetnx test java bigdata hadoop service tomcat;


7、 追加内容:append test spring,返回的是当前的数据保存的长度;


8、 取得长度:strlen test ;


9、 删除数据:del info bigdata;


10、 自增处理: 

· 保存一个数据,该数据的内容为数字:set num 10; 

· 自增操作:incr num,将返回增长后的内容;


11、 默认情况下 incr 每次执行“+1”的自增,也可以自己设置:incrby num 10;


12、 自减 1 处理:decr num;


13、 自减指定的数据:decrby num 10;


二、散列类型(Hash) 

Hash 是一种 key 与 value 映射的结构,在操作里面在之前保存的数据只能够是一个内容,但是如果使用了 Hash 之后保存的数据可以是一个 key 与 value 的结构。


1、 设置一个 hash 数据:hset test type1 1;


2、 取出 hash 数据:hget test type1;


3、 数据加法操作:hincrby test type1 1;


4、 默认情况下如果重名的内容会覆盖,可以使用不覆盖设置:hsetnx test type2 100;


5、 设置多个数据:hmset testjava 1-1 10 1-2 20;


6、 获取所有的 key 的信息:hmget testjava 1-1 1-2;


7、 判断某个数据是否存在:hexists testjava 1-1,存在返回 1,不存在返回 0;


8、 取得指定 key 的数量:hlen testjava;


9、 删除一个 key 的信息:hdel testjava 1-1;


10、 取得所有的 key:hkeys testjava;


11、 取得所有的内容:hvals testjava;


12、 获取所有的 key 与 value:hgetall testjava;


三、列表类型(List) 

List 属于一种链表的数据类型,那么在整个的链表的处理之中主要的功能就是 push、pop。 

1、 向列表中存放数据:lpush infos java;


2、 取得所有的元素(索引从 0 开始):lrange infos 0 1; 

· 如果现在要想输出全部内容,则将结束索引设置为“-1”即可;


3、 通过尾部保存数据:rpush infos scal;


4、 在指定内容前追加内容:linsert infos before java oracle; 

在指定的内容后追加内容:linsert infos after java cloud;


5、 修改指定索引的内容:lset infos 0 hbase; 

· 最后添加在顶部的数据索引就是 0;


6、 删除数据:lrem infos 1 tomcat;


7、 删除指定范围之外的数据:ltrim infos 0 3;


8、 弹出数据:lpop infos;


9、 将弹出的数据保存到新集合:rpoplpush infos msgs;


10、 取得指定索引的数据:lindex msgs 0;


11、 取得集合的元素个数:llen msgs。


四、无序集合类型(Set) 

Set 里面保存的所有的无序处理数据,有如下的操作命令 。 

1、 向集合之中追加元素:sadd infos java;


2、 查询 set 集合的全部内容:smembers infos; 

· 这个时候可以发现在 Set 集合之中所保存的数据都是无序的状态; 

3、 删除集合元素:srem infos java;


4、 随机弹出一个元素:spop infos;


5、 返回集合差集:


6、 将差值保存在新的集合之中:sdiffstore myinfo infoa infob;


7、 交集计算:sinter infoa infob;


8、 将交集计算结果保存到新的集合之中:sinterstore myinfo2 infoa infob;


9、 并集计算(无重复):sunion infoa infob;


10、 将并集结果保存到新的集合之中:sunionstore myinfo3 infoa infob;


11、 将一个 Set 集合的删除数据保存到另外一个集合:smove infoa infob hadoop 

· 从 infoa 这个集合里面删除掉 hadoop 的数据信息,而后将这个数据保存给 infob


12、 返回集合个数:scard infoa;


13、 判断集合中是否有某一元素:sismember infoa hadoop;


14、 随机返回数据并且不删除:srandmember infoa。


五、有序集合(SortedSet) 

Set 集合里面是没有任何顺序的保存,所以在 Redis 里面就提供有另外一套 Set 集合保存,称为有序存储。所谓的有序可以理解为它有两个列:一个列是存放内容,另外一个列是存放索引编号。 

1、 追加新的集合: 

zadd infos 0 hadoop 

zadd infos 2 oracle 

zadd infos 5 kafka 

zadd infos 1 java 

zadd infos 1 tomcat


2、 查看数据内容:zrange infos 0 -1 

· 查看分数:zrange infos 0 -1 withscores; 

|- 假设说你现在要进行一个综合的数据排名,例如:全球网站排名系统;


3、 删除集合数据:zrem infos java;


4、 数据(分数)增长:zincrby infos 10 hadoop;


5、 取得指定元素的索引数据:zrank infos hadoop;


6、 数据索引反转: 

· “zrevrank infos tomcat”:原本的 tomcat 的索引值为 0,现在反转之后是 3,索引反转; 

· “zrevrank infos hadoop”:原本的 hadoop 的索引值为 3,现在反转之后是 0,索引反转。


7、 反转后取得数据(由升序变为了降序):zrevrange infos 0 -1 withscores;


8、 取出指定索引范围的数据:zrangebyscore infos 0 2 withscores;


9、 取得指定分数范围的元素数量:zcount infos 1 20;


10、 取得指定集合的个数:zcard infos;


原文链接:https://blog.csdn.net/shuxing520/article/details/77648143


上一篇: 线下转线上学习软件测试热情反增不减

下一篇: 软件测试之手工测试人员如何转测试开发?

QQ技术交流群

多测师官方学习交流
556733550

加入群聊