Redis 数据类型
Redis支持五种数据类型
- string(字符串)
- hash(哈希)
- list(列表)
- set(集合)
- zset(sorted set:有序集合)。
redis作为缓存最常用的类型
- string(字符串)
- hash(哈希)
最常用的方法
- set(字符串的设置值)
- get(字符串取值)
- del(字符串删除key)
- expire(设置key的过期时间)
- ttl(查看key的当前还有多久过期)
- hset(hash的设置key及值)
- hget(hash的取值)
- hdel(删除key)
- hexists(判断某个key是否存在)
Redis单机的安装
- 先安装c语言的编译环境 执行yum install gcc-c++
- 解压缩Redis的压缩包 tar zxf Redis
- 在解压缩路径下执行make命令
- 然后执行 make install -PREFIX 你要安装的路径
- 复制解压目录下的redis.conf到安装路径的bin文件下
- 默认启动redis 使用命令 bin/redis-server.sh,如果要带自定义的redis的配置文件 直接在后面跟配置文件redis.conf
- 如果需要后台启动 我们需要笔记redis.conf,修改daemonize 为yes
Redis集群安装
- 单机版安装了,我们只需要创建一个目录 mkdir /usr/local/cluster
- 然后复制单机版的redis到cluster名字为redis01,redis02,redis03,redis04,redis05,redis06(1个集群,3个节点,一主一从)
- 然后修改redis.conf配置文件,如果在同一台机器上需要修改他们的端口号,cluster-enabled属性为yes
- 然后需要安装ruby的环境 yum install ruby ,yum install rubygems
- 安装ruby运行的脚本 gem install redis-3.0.0.gem(redis-3.0.0.gem需要自己下载)
- 启动所有的redis服务
- 进入redis-3.0.0/src目录下 然后执行命令 ./redis-trib.rb create –replicas 1 redis01的地址 redis02的地址 redis03的地址 redis04的地址 redis05的地址 redis06的地址(例如 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003 192.168.25.153:7004 192.168.25.153:7005 192.168.25.153:7006) 这个命令中1代表几个备份机
Redis单机的操作(JAVA)
使用jedis操作redis
Jedis jedis = new Jedis(ip地址, 端口号);
String result = jedis.get("hello");
System.out.println(result);
jedis.close();
使用JedisPool操作redis
/ 第一步:创建一个JedisPool对象。需要指定服务端的ip及端口。
JedisPool jedisPool = new JedisPool("192.168.25.153", 6379);
// 第二步:从JedisPool中获得Jedis对象。
Jedis jedis = jedisPool.getResource();
// 第三步:使用Jedis操作redis服务器。
jedis.set("jedis", "test");
String result = jedis.get("jedis");
//关闭jedis
jedis.close();
Redis集群的操作(JAVA)
Set<HostAndPort> nodes = new HashSet<>();
nodes.add(new HostAndPort("192.168.25.153", 7001));
nodes.add(new HostAndPort("192.168.25.153", 7002));
nodes.add(new HostAndPort("192.168.25.153", 7003));
nodes.add(new HostAndPort("192.168.25.153", 7004));
nodes.add(new HostAndPort("192.168.25.153", 7005));
nodes.add(new HostAndPort("192.168.25.153", 7006));
JedisCluster jedisCluster = new JedisCluster(nodes);
// 第二步:直接使用JedisCluster对象操作redis。在系统中单例存在。
jedisCluster.set("hello", "100");
String result = jedisCluster.get("hello");
// 第三步:打印结果
System.out.println(result);
// 第四步:系统关闭前,关闭JedisCluster对象。
jedisCluster.close();
Redis与Spring整合
单机版的配置
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="6379"></constructor-arg>
</bean>
集群版的配置
<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
<constructor-arg>
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="7001"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="7002"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="7003"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="7004"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="7005"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"></constructor-arg>
<constructor-arg name="port" value="7006"></constructor-arg>
</bean>
</set>
</constructor-arg>
</bean>