redis的基本认识和使用
Redis总结
Redis概念
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
Redis:
是一种键值对key/value的存储系统,和Memcached类似,它支持存储的value类型更多,包括string,list,set,map,zset,hash.有弱事务(就是在提交事务后,失败的会报错,成功的依然会被保存,基本没用)
分布式和集群的简单理解
分布式是指将不同的业务分布在不同的地方。 而集群指的是将几台服务器集中在一起,实现同一业务。
Nosql
(不仅仅是sql),泛指非关系型数据库
优点:
1.格式灵活:存储数据的格式可以是key/value,文档形式,图片形式等,使用应用场景更加灵活,关系型数据库只支持基础类型
2.速度快:nosql库可以使用缓存,作为载体,关系型数据库只能使用硬盘
3.扩展性强
4.部署简单
缺点:
1.不提供sql支持,学习和使用成本较高;
2.无事务处理;
3.数据结构相对复杂,复杂查询方面稍欠。
关系型数据库
优点:
易于维护:都是使用表结构,格式一致
Sql语言通用,可以使用复杂的数据查询
能够用于一张或多张表的复杂查询
缺点:
读写性能比较差,尤其是海量数据的高效率读写;
固定的表结构.灵活度稍欠;
高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
1.Redis的安装:
绿色版本解压即可用:
在使用时需要先打开服务端,如果设置了密码需要cmd当前服务端文件下打开
在redis-cli客户端下使用:
-
对string类型的操作:
Set key value 设置值
Get key 通过key取值
Mset 设置多个key/value
Mget 通过多个key取值
Incr 追加1
Decr 减少1
Incrby 追加自定义的数值
Decrby 减少自定义的数值 -
set 设置
mset 设置多个值
get 通过key取值
mget 通过多个key取值
append 追加至
del 通过key删除
sadd添加
sinter交集
sunion并集
sdiff差集
sinterstore 交集放到新的集合
sdiffstore 差集放到新的集合 -
对key的常用操作
exists 判断key值是否存在
expire 设置key值失效时间
ttl 显示该key值剩余失效时间 -
对list的基本操作
lpush 设置值
lrange 遍历值
lrem 删除
lset 修改
java操作redis
//抽取枚举工具类
public enum jedisUtils {
//设置一个实例
INMYREDIS;
//定义一个连接池对象
public static JedisPool jedisPool;
//新建一个静态代码
static {
//获取连接池配置对象
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//设置配置
jedisPoolConfig.setMaxTotal(20);//设置高峰访问数量
jedisPoolConfig.setMaxIdle(5);//设置闲时访问数量
jedisPoolConfig.setMaxWaitMillis(2*1000);//设置最大等待时间
jedisPoolConfig.setTestOnBorrow(true);//判断是否成功
//获取jedispool连接池
jedisPool = new JedisPool(jedisPoolConfig,"127.0.0.1");
}
//返回获取jedis对象
public Jedis getJedis(){
return jedisPool.getResource();
}
//关闭
public void JedisColse(Jedis jedis){
//判断jedis是否为空 不为空才关闭
if (jedis!=null){
jedis.close();
}
}
}