博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

redis杂记

一、Redis启动客户端命令:redis-cli --raw(加--raw的原因是为了避免乱码)。

二、其实在redis sorted sets里面当items内容大于64的时候同时使用了hash和skiplist两种设计实现。这也会为了排序和查找性能做的优化。

三、单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。
事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做。

四、Redis插入大量数据,优化措施:使用管道技术。

 1 RedisCallback<Object>  action = new RedisCallback<Object>(){
 2     @Override
 3    public Object doInRedis(RedisConnection connection)
 4        throws DataAccessException {
 5            // 打开管道
 6            connection.openPipeline();
 7            byte[] key = "key".getBytes();
 8            byte[] value = "value".getBytes();
 9            connection.set(key, value);
10            // connection.closePipeline();
11            return null;          
12        }   
13 };    
14 
15 List<Object> resultList = redisTemplate.executePipelined(action);                        

 

posted @ 2021-03-11 17:47  疯狂打码  阅读(35)  评论(0编辑  收藏  举报