redis学习(二)

jedis的简单使用java

前面介绍了操做redis的客户端有redis本身提供的redis-cli,这是界面上的操做,若是是代码操做redis,使用的是jedis。redis

准备jar包(能够经过Maven下载获得):数据库

redis提供的代码访问的端口是6379json

测试代码以下(其中的ip是redis安装的远程虚拟机的ip):session

jedis的链接池使用工具

操做数据库最多见的存入类型就是存入String类型,若是想存入对象类型,能够传入json格式的字符串,而后拿出来的时候能够在转为对象的类型。测试

也能够直接使用一个工具类:.net

也能够将配置放在一个redis.properties配置文件中读取:3d

redis的String/数值经常使用操做对象

redis存储的字符串最长长度是512M。常见的操做:

(1)存储

(2)取出

(3)删除

(4)数值增减(注意操做的是数值类型的)

若是自增/自减一个原来就不存在的数据,他会默认的给你加/减进去,初始值为0,加1后值为1,减1后值为-1:

(5)每次指定加几或者减几,相似于java的i += 2:

(6)串的拼接

redis的Hash类型的操做

(1)添加/获取

(2)删除:删除一个field或者删除一个key:

使用例子:

先从新设置值、增长、减小、判断是否存在一个值(存在就是1,不存在就是0)、获取某个key下的数据的数量、获取全部的key或者全部的value:

redis数据类型list的操做

注意,这里跟咱们学的java中的list不太同样的是,这个list集合的底层是链表,因此不少的操做都是操做的头尾:

左边是left,右边是right,加入的时候若是key不存在就会建立:

下面是一个具体的例子,注意left表示左边,right表示右边,最后一个获得的顺序,这个获得的顺序,是根据一个从左边插进去,一个从右边插进去,获得的时候最好画图理解:

两段弹出来,弹出来的过程当中也能够进行数据是否有的查询:

获取长度:

扩展的加入指令,这个指令若是key不存在就不会添加进去:

删除:

删除指定个数的元素:

倒着删除,而且指定删除的个数:

替换:

在指定位置插入数据:

从一个集合的尾部弹出添加在另外一个集合的头部(先再建立一个集合):

应用场景:

redis数据类型set的操做

set集合中不容许出现重复的元素。默认是无序的。

添加,查询,删除,判断是否存在:

获得差集:

交集:

并集:

扩展指令:

使用的例子:

redis数据类型sortedset的操做:

用户登陆以后,session的存储也可使用redis存储。存储的数据加上权重,根据权重进行排序。应用:好比游戏中取前10名的排序排名,根据积分。

添加和查询:

实现倒序反转排列:

虽然上面实现了倒序排序,可是默认的是从小到大排序,因此删除的时候是删除的前面的三个:

。。。还有不少。

redis的移库操做

默认存放的位置是0库,如今进行移库操做:

redis的订阅和发布:

订阅就相似于订阅了哪一个频道订阅的话通常是须要至少两个链接的端的。注意前提是redis的客户端是打开的状态,打开两个客户端,一个做为接收端,一个做为发布端。先开一个客户端:

而后开一个发布端:

最后能够在接收端看到发布端发布的内容,这个相似于QQ群信息的发布:

redis的事务:

测试,打开一个客户端,下面的是单独的执行了几条命令,如今我想把这几个绑在一块儿:

事务提交,多个命令放在一块儿的时候,不会马上的提交,而是会排队,等事务进行提交的时候有异常的命令就不会执行,能正常执行的就执行,不会中断:

事务尚未进行提交的时候进行事务的回滚,这样就不会提交:

相关文章
相关标签/搜索