浅谈Redis

来源:互联网 发布:网络体系结构的定义 编辑:程序博客网 时间:2024/06/03 19:30
redis是什么?
1.redis是一种菲关系型的数据库,里面所有的数据存储都是以key value的形式存储的,显而易见,最直接的说法,redis就是一个数据库,可以当做一个数据库来使用
  当然,在我们的实际开发过程中,很少把redis单独当做数据库来使用,因为它是直接把数据存储在电脑的内存中的,最明显的一个瓶颈就是容量问题了
  
2.redis还可以用来做缓存,像我们熟悉的memacache一样,为什么呢,正是因为它把所有的数据都存入内存中,所以读取的速度是相当的快的,在我们互相网时代,假如
  一个系统的并发量特别高的情况下,每一次查询都去我们传统的关系型数据库中查询,想必数据库是肯定是受不了的,轻则查询速度缓慢,重则数据库瘫痪
  redis做缓存适合于数据不会经常改变的情况
  
3.当然redis还有其他很多比较实用的功能,比如说它的发布订阅模式,这就可以用来做项目之间配置的统一。  还有她的自动排序,就可以用来做排名的功能  等等。。。






使用Jdis管理redis单机版
1.创建一个Jedis对象,需要指定连接的IP以及端口号dis对象,需要指定连接的IP以及端口号
  Jedis jedis = new Jedis("192.168.31.245" 6379);
  
2.使用jedis对象操作数据库
  


使用JedisPool管理redis单机版
1.创建一个JedisPool对象,同样需要指定连接的IP以及端口号
   JedisPool jedisPool = new JedisPool("192.168.31.245" 6379);
 
2.从JedisPool对象中获取Jedis对象
  Jedis jedis = jedisPool.getResource();
  
3.使用jedis对象操作数据库










redis单机版和spring框架的整合使用
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="192.168.25.153"/>
<constructor-arg name="port" value="6379"/>
</bean>




使用Jedis管理redis集群版
1.使用JedisCluster对象,需要一个Set参数,作为redis集群的节点列表
  Set<HostAndPort> nodes = new HashSet<>();
  nodes.add(new HostAndPort("192.168.31.245" 6379));
  nodes.add(new HostAndPort("192.168.31.245" 1111));
  nodes.add(new HostAndPort("192.168.31.245" 2222));
  nodes.add(new HostAndPort("192.168.31.245" 3333));
  JedisCluster jedisCluster = new JedisCluster(nodes);
  
2.直接使用jedisCluster对象操作redis集群
  jedisCluster.set("slhaobing","shuai");
  jedisCluster.get("shaobing");
  


  
  
redis集群版和spring框架的整合使用
  <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 name="port" value="7001"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"/>
<constructor-arg name="port" value="7002"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"/>
<constructor-arg name="port" value="7003"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"/>
<constructor-arg name="port" value="7004"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"/>
<constructor-arg name="port" value="7005"/>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="192.168.25.153"/>
<constructor-arg name="port" value="7006"/>
</bean>
</set>
</constructor-arg>
</bean>





redis集群的搭建
1.因为redis集群的搭建需要使用ruby的运行环境,所以第一步先安装ruby
  yum install ruby
  yum install rubygems
  
2.用ruby脚本运行使用的包
  gem install redis-3.0.0 gem
  
3.创建6个redis实例,修改每个实例的端口(redis.config里面修改),另外还需要把配置文件的cluster-enabled yes的注解打开


4.启动每一个redis实例
  ./redis-server redis.config
  
5.使用ruby脚本搭建redis集群
  ./redis-trib.rb  create  --replicas  1  192.168.31.245:7000 192.168.31.245:7001  192.168.31.245:7002 192.168.31.210:7003  192.168.31.210:7004  192.168.31.210:7005
  
6.目前来说,一个redis集群已经搭建好了,接下来使用redis-cli来测试
  连接redis集群:redis-cli -h 192.168.31.245 -c -p 7002    
set shaobing shuai
  测试可有写入成功:redis-cli -h 192.168.31.245 -c -p 7005
get shaobing







redis的持久化
1.redis支持两种持久化方式,一种是 Snapshotting(快照)也是默认方式,另一种是Append-only file(缩写aof)的方式
  Snapshotting:定时将内存中的数据以快照的形式写入到磁盘中  dump.rdb  可以设置时间
  Append-only file:每对redis进行一次操作,就把命令记录下来,下次直接跑命令就可以恢复了
  
  


  
  































原创粉丝点击