缓存技术_redis和MD5加密

##NoSQL 简介##
NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。


> 更多 http://www.runoob.com/mongodb/nosql.html


NoSQL的优点/缺点


- 优点:
- 高可扩展性
- 分布式计算
- 低成本
- 架构的灵活性,半结构化数据
- 没有复杂的关系
- 缺点:
- 没有标准化
- 有限的查询功能(到目前为止)
- 最终一致是不直观的程序




##Redis##
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 (超级的MAP),NoSQL的一种。


它支持多种数据类型字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。


> 更多 http://www.runoob.com/redis/redis-intro.html




##下载&安装##
1. 到官网下载 redis (一般环境搭建到linux系统)


2. 安装文件 Redis-x64-3.2.100.msi (一定要记得安装的路径)


##启动##


解决第一次启动window报错问题
1. CMD下进入安装目录 ,执行reids-cli.exe
2. 输入shutdown
3. 输入exit




正式启动Redis服务器


CMD下进入安装目录 ,执行如下命令开启服务
redis-server.exe redis.windows.conf



另起一个命令窗口,进入安装目录
1. 执行 redis-cli.exe
2. 设置键值对  set myKey abc
3. 取出键值对  get myKey



redis.windows.conf(redis文件夹中) 为redis的配置文件
其中 bind(搜索bind) 属性是只可访问的IP地址例如
bind 127.0.0.1 192.168.1.100 192.168.1.101 //可以在这个后面加这个id地址,可以连接其他人的ip,经测试:加0.0.0.0连其他人的ip
    表示IP100,101 可连接使用我的redis服务器 




> 其它更多数据类型使用 参考手册 http://www.runoob.com/redis/redis-install.html








## Java 中使用 ##

第一步:依赖Jar
    jedis 是redis的Java版本驱动包
    spring-data-redis 是Spring 对redis 的相关集成


<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>


<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.7.4.RELEASE</version>
</dependency>


第二步简单使用


public static void main(String[] args) {
     //连接本地的 Redis 服务
     Jedis jedis = new Jedis("localhost");
     System.out.println("Connection to server sucessfully");
     //设置 redis 字符串数据
     jedis.set("runoobkey", "Redis tutorial");
    // 获取存储的数据并输出
    System.out.println("Stored string in redis:: "+ jedis.get("runoobkey"));
}


## Spring 中集成使用 ##


第一步 spring 配置文件添加
<bean id="jedisConnFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:host-name="127.0.0.1"/>


<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnFactory" />




第二步
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:configs/spring/spring-context.xml")
public class MyTest {

@Autowired
   private RedisTemplate<String, Object> redisTemplate;

@Test
public void testReids() throws InterruptedException{
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");

// 存放缓存  3秒钟失效   , 键为 myKey 值为list对象
redisTemplate.opsForValue().set("myKey", list, 3 , TimeUnit.SECONDS);

System.out.println(redisTemplate.opsForValue().get("myKey"));
System.out.println(redisTemplate.opsForValue().get("myKey"));

Thread.sleep(3000);

System.out.println(redisTemplate.opsForValue().get("myKey"));
}
}



## 缓存的意义 ##


缓存的意义就是提高查询性能 , 以空间换取时间 .
例如: 淘宝首页 (每隔几分钟才刷新一次)
 12306剩余火车票(每个30分钟刷新一次)




什么时候用缓存技术
1. 数据不常发生改变
2. 数据实时性要求不高
3. 查询或计算需要耗费大量的性能时




## 其它常见的缓存框架或Nosql框架 ##

ecache , memcache , mongoDB 

要了解细节google, baidu


##哪些地方会用到缓存##


    1.可以通过数据库的索引
2.如果性能还是没提高,就可以考虑使用redis




##MD5##
Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321




##用途##
1. 数字签名 (用于校验一致性)


大家都知道,地球上任何人都有自己独一无二的指纹;与之类似,
MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”(也叫MD5值),
如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。


2. 安全访问认证 (广泛用于登陆认证)


用于密码加密技术,用户密码是珍贵的保密的系统不能直接保存用户明文密码,否则被黑客入侵将是一种灾难




##使用##

// Java 自带的MD5算法 , 也有公司会自己实现(通常都是网上流传的一些例子)
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import sun.misc.BASE64Encoder;

public class MD5Util {

public static String md5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {
MessageDigest md5 = MessageDigest.getInstance("MD5");
BASE64Encoder base64en = new BASE64Encoder();
return base64en.encode(md5.digest(str.getBytes("utf-8")));
}

public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException {
System.out.println(MD5Util.md5("123456"));
}
}



##加盐##

因为MD5常用容易被匹配出来,例如网上有个MD5破解网站 http://www.cmd5.com/, 原理就是收集了大量的MD5值




加盐简单来说就是为加密的串添加一些其它内容,以达到别人无法猜测的目的。
例如
用户名:admin   密码: 123456
加盐密码: $%@!^&123456 或 $%@!^&123456admin
  



博客
http://blog.csdn.net/blade2001/article/details/6341078
  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值