redis 学习笔记(二)】的更多相关文章

Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省储存空间. 二.BitMap算法基本描述 BitMap 是使用 bit位来标记某个元素对应的value,而key 即是该元素,因此对于之前位数存储换成bit位存储数据能大大的节省存储空间. 三.BitMap的实现思想 假设我们要对于0-7内的5个元素(4,7,2,5,3)进行排序(假设元素没有重复)…
学习Redis添加Object时,由于Redis只能存取字符串String,对于其它数据类型形容:Int,long,double,Date等不提供支持,因而需要设计到对象的序列化和反序列化.java序列化的过程就是将对象转变为byte,字节码的过程. Java的反序列过程就是就是将字节码恢复成对象的过程. 一正一逆,也迎合了电脑存储数据的特点. 关于Java的序列化和反序列化的Demo: package hbut.base; import org.junit.Test; import java.…
redis的基本数据结构是动态数组 一.c语言动态数组 先看下一般的动态数组结构 struct MyData { int nLen; char data[0]; }; 这是个广泛使用的常见技巧,常用来构成缓冲区.比起指针,用空数组有这样的优势: 1.不需要初始化,数组名直接就是所在的偏移   2.不占任何空间,指针需要占用int长度空间,空数组不占任何空间.  这个数组不占用任何内存,意味着这样的结构节省空间: 该数组的内存地址就和他后面的元素的地址相同,意味着无需初始化,数组名就是后面元素的地…
ConnectionMultiplexer ConnectionMultiplexer 是StackExchange.Redis的核心对象,用这个类的实例来进行Redis的一系列操作,对于一个整个应用程序应该只有一个ConnectionMultiplexer 类的实例.上一章中StackExchangeRedisHelper 的相关代码如下 private static ConnectionMultiplexer _instance = null; /// <summary> /// 使用一个…
redis启动: 直接 redis-server.exe 启动服务,是按照redis默认配置启动的,如果想按照自己的配置文件启动,要加上 redis-server.exe  redis.windows.config 一.redis读写键空间时的维护操作 在读取一个键后(读和写操作都要对键进行读取),服务器会根据键是否存在更新键空间命中(hit)和不命中(miss)次数. 在读取一个键后,服务器会更新键的LRU时间(最后一次使用时间),这个可以用来计算键的闲置时间. 在读取一个键时发现键已过期,则…
redis怎么在java中使用,那就是要用到jedis了,jedis是redis的java版本的客户端实现,原本原本想上来就直接学spring整合redis的,但是一口吃个胖子,还是脚踏实地,从基础开始学起,写个简单demo,初步了解一下. 首先导入jedis的jar包,我这里用的maven,导入jedis的依赖如下: <dependencies> <dependency> <groupId>redis.clients</groupId> <artif…
1. 数据库 服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组的每个项都是一个redis.h/redisDb结构,每个redisDb结构代表一个数据库: struct redisServer { // ... redisDb *db; /* 一个数组,保存着服务器中的所有数据库 */ // ... int dbnum; /* 创建多少个数据库,由服务器配置的database选项决定,默认为16个数据库,0-15 */…
本文不涉及集群搭建操作 关于在lua脚本中操作redis的应用场景 大家都知道redis对于单个集合的操作是原子性的;但是有可能有一种场景是这样.比如说抢红包,现在有十个人抢五份红包,抽象到我们java代码里就是十个线程争抢五份资源, 而这个逻辑如果使用redis操作的话,是需要进行多步骤的数据增改操作,但是因为是多步骤,所以在第一个步骤或第二个步骤进行操作的时候redis都没任何问题,但是第三步可能就失败了.但因为不是原子性的,第一个步骤和第二个就不会回滚,数据就会不一致,但其它线程也不知道,…
1. 在centos下安装g++,如果输入 yum install g++,那么将会提示找不到g++.因为在centos下g++安装包名字叫做:gcc-c++ 所以应该输入 yum install gcc-c++,即可. 2. You need tcl 8.5 or newer in order to run the Redis test make: *** [test] Error 1 wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src…
集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能.   1.节点 一个节点就是一个运行在集群模式下的Redis服务器.启动Redis服务器时,通过判断cluster-enabled选项,选择是否开启集群模式.(Yes开启集群,No则单机模式普通服务器)   一个Redis集群由多个节点组成,每个节点使用的端口各不相同,可以设置.每个节点最开始可以看做一个只有自己节点的集群,节点间通过命令相互握手,组建集群   握手命令 cluster meet //与ip为127.0.0…