本文就来讲一下Redis安装的方法和Redis生成主键的优点以及和其他几种方式生成主键的对比. 1,Redis安装首先将Redis的tar包拷贝到Linux下的根目录dis文件夹下:(先使用mkdir创建redis文件夹)
dis目录下:
解压后的目录结构:
编译: 使用Make命令安装:
安装好之后的目录:
6379 下的目录结构:(这个rdb文件时: redis database,暂时不用管它,重启后自动生成的)
配置后台运行:(将redis-3.0.0目录下的redis.conf文件拷贝到6379目录下,使用cp命令)dis.conf文件(使用vim 命令编辑,修改daemonize为yes,意思就是支持后台运行)
启动redis服务:(启动及停止命令)
客服端连接服务器:(如果是远程连接: ./bin/redis-cli -h 192.168.200.128 -p 6379)
命令行演示:
一个redis就启动完成了.
可以使用Redis集群来获取更高的吞吐量。假如一个集群中有5台Redis。可以初始化每台Redis的值分别是1,2,3,4,5,然后步长都是5。各个Redis生成的ID为:
A:1,6,11,16,21
B:2,7,12,17,22
C:3,8,13,18,23
D:4,9,14,19,24
E:5,10,15,20,25
这个,随便负载到哪个机确定好,未来很难做修改。但是3-5台服务器基本能够满足器上,都可以获得不同的ID。但是步长和初始值一定需要事先需要了。使用Redis集群也可以方式单点故障的问题。
另外,比较适合使用Redis来生成每天从0开始的流水号。比如订单号=日期+当日自增长号。可以每天在Redis中生成一个Key,使用INCR进行累加。
优点:
2)数字ID天然排序,对分页或者需要排序的结果很有帮助。
缺点:
1)如果系统中没有Redis,还需要引入新的组件,增加系统复杂度。
2)需要编码和配置的工作量比较大。
用INT做主键的优点:
1、需要很小的数据存储空间,仅仅需要4 byte 。
2、insert和update操作时使用INT的性能比GUID好,所以使用int将会提高应用程序的性能。
3、index和Join 操作,int的性能最好。
4、容易记忆。
5、支持通过函数获取最新的值,如:Scope_Indentity() 。
使用INT做主键的缺点
1、如果经常有合并表的操作,就可能会出现主键重复的情况。
2、使用INT数据范围有限制。如果存在大量的数据,可能会超出INT的取值范围。
3、很难处理分布式存储的数据表。
使用GUID做主键的优点:
1、它是独一无二的。
2、出现重复的机会少。
3、适合大量数据中的插入和更新操作。
4、跨服务器数据合并非常方便。
使用GUID做主键的缺点:
1、存储空间大(16 byte),因此它将会占用更多的磁盘大小。
2、很难记忆。join操作性能比int要低。
4、GUID做主键将会添加到表上的所以其他索引中,因此会降低性能。
3. 代码中演示使用RedisJava接口测试Redis:dis整合:
在这里使用redis生成id
Long id = jedis.incr("pno"
默认下架
product.setIsShow( 默认不删除
product.setIsDel(
product.setCreateTime(
(String color : product.getColors().split(","
(String size : product.getSizes().split("," Sku sku =
sku.setUpperLimit(188
sku.setCreateTime(
sku.setStock(0 }
看到这个最上面使用了jdis去调用Redis服务,然后使用incr对pno(在redis中可以对pno设置值)加1操作. 之前使用的都是自增长ID,在mapper.xml中insert完成之后自动返回主键id到product中,在级联保存的时候可以直接使用product.getId(). 下面就来看一下redis与spring整合的配置.
dis.xml配置文件:
关于Redis的使用暂时就这么多,下次还会继续分享更多的内容.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。