redis总结

redis是什么

        Redis是一个开源的、高性能的Key-Value存储系统,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set 有序集合)、hash(哈希类型)。Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为半持久化模式”);也可以把每一次数据变化都写入到一个appendonly file(aof)里面(这称为全持久化模式”)

持久化方式

       RDB(适用灾难恢复,内容紧凑,保存redis在某个时间点数据集)和AOF(追加操作日志文件,根据使用的fsync策略,体积大,速度慢于RDB)

分区

分区是将数据分割成多个 Redis 实例,使每个实例将只包含键子集的过程。

项目中使用

       集群搭建

          进入redis安装包路径:

cd /usr/local/src/redis/redis-3.0.7/src
6个虚拟机之间互相通信
./redis-trib.rb create --replicas 1 192.168.246.44:6379  192.168.246.44:6380 192.168.246.44:6381  192.168.246.44:6382 192.168.246.44:6383 192.168.246.44:6384  192.168.22.251:6380


      添加redis服务

pom中添加依赖,redis封装在tool里面,配置文件在easyui中

<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
			<version>${jedis.version}</version>
	</dependency>

添加目录applicationContext-redis.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:aop="http://www.springframework.org/schema/aop" 
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:util="http://www.springframework.org/schema/util" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
	http://www.springframework.org/schema/aop 
	http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
	http://www.springframework.org/schema/tx  
	http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
	http://www.springframework.org/schema/util 
    http://www.springframework.org/schema/util/spring-util-3.0.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context-3.0.xsd">
	
	<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
	
	<!-- 配置redis客户端集群版 -->
	<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
		<constructor-arg>
			<set>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.22.251"/>
					<constructor-arg name="port" value="6380"/>
				</bean>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.22.251"/>
					<constructor-arg name="port" value="6381"/>
				</bean>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.22.251"/>
					<constructor-arg name="port" value="6382"/>
				</bean>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.22.252"/>
					<constructor-arg name="port" value="6380"/>
				</bean>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.22.252"/>
					<constructor-arg name="port" value="6381"/>
				</bean>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.22.252"/>
					<constructor-arg name="port" value="6382"/>
				</bean>
			</set>
		</constructor-arg>
	</bean>
<bean id="jedisClientCluster" class="com.tgb.itoo.tool.redisUtil.JedisClientCluster"/>
</beans>



      controller或service使用

1、在controller层加入redis,web层spring-mvc.xml,需要加入redis的controller添加

具体项目controller添加
JedisCluster  jediscluster;
	public JedisCluster getJediscluster() {
		return jediscluster;
	}
	public void setJediscluster(JedisCluster jediscluster) {
		this.jediscluster = jediscluster;
	}
添加:
@RequestMapping("test1")
	public void test1(HttpServletRequest request, HttpServletResponse response) {
		//添加缓存(String)
		jediscluster.set("key", "value");
}
查询:
@RequestMapping("test3")
	public void test3(HttpServletRequest request, HttpServletResponse response) {
		//查询缓存(String)
		String string = jediscluster.get("key");
	}
2、service层加入redis,读取配置文件,存储格式同上
 JedisCluster jediscluster =null;
	public BuildTypeBeanImpl(){
		 //在执行此实例化的时候就会完成所有注入
		  ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext-redis.xml");

		  jediscluster = (JedisCluster)ctx.getBean("jedisCluster");
	}

主从复制

          Redis启动成功后,可以看到启动的端口是6379看这个可以通过指定配置文件修改,我们就来制定以下配置文件,设置6个同样的redis服务,三主三从,redis集群采用了数据分片的技术。我们可以是6个虚拟机,6个IP,也可以是1个虚拟机,同一个IP,不同的端口号。Demo中采用的是一个虚拟机,不同端口的方式。

1、如下路径创建6个文件夹:6379,6380,6381,6382,6383,6384

2、复制redis.cof到6个文件夹:

      cp redis.conf /usr/local/redis/myredis/6379


3、同理,复制redis-server到6个文件夹,复制redis-check-aof到6个文件夹(如下文件都复制过去)


4、配置6个redis.conf

port 6379
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes

port 6380
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes

……剩下的一样,端口号不一样
5、启动6个redis服务,指向各自conf
6379 文件夹下:  ./redis-server ./redis.conf
6380 文件夹下:  ./redis-server ./redis.conf
……
查看启动的redis服务进程状态: ps –ef|grep redis

与memcached相比

        与memcached类似,为了保证效率,数据都是缓存在内存中。redis可以用来做存储具有持久化功能,memcached用来做缓存。Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并在此基础上实现master-slave(主从)同步。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值