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;

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值