您的位置:首页 > 数据库 > Redis

redis简单运用,数据类型,适合入门

2017-08-23 00:00 99 查看
初始redis,人们总说它是一个缓存,后来才明白,其实就是个数据库,但是这个数据库不是把数据持久化到硬盘,而是存在内存中。因此写入和读取速度都是比一般数据库比如mysql快的多,所以可以作为缓存。

redis是一个非关系型数据库,什么叫非关系型数据库呢,这是相对于关系型数据库来说的。关系型数据库就是我们经常见到的mysql、oracle、sqlserver等数据库,它们的存储读取都是靠sql来操作的,而且都有表结构。而非关系型数据库是没有表结构的,所以也不能用sql来操作。事实上,redis数据库中存储的都是形如key-value形式的数据,看似像一个map,存值的时候,可以set,取值的时候,可以get。

想要使用redis,首先需要启动一个redis服务,正如我们使用mysql的时候也需要先安装mysql服务,并启动,在windows系统上,有封装好的免安装版redis服务,解压后,管理员权限运行redis目录下的redis-server.exe,就启动了一个redis服务,如下,redis的默认端口是6379



接下来,在程序中我们试着往里存数据,新建一个java项目,引入jedis的jar包

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

接着,我们用main方法测试

public static void main(String[] args) {
//连接redis
//第一个参数为redis服务器的地址,这里是本机
//第二个参数为端口,redis默认为6379
Jedis jedis = new Jedis("localhost",6379);
//其他操作,见下文中的代码
}

在redis存取值时,都是用上述redis对象来操作

redis可以存储五种类型结构的数据,strings、hashs、lists、sets、sorted sets

下面一一介绍

首先就是strings,这个就相当于java中的Map<String,String>类型

//存一对儿key-value值
jedis.set("name","zhangsan");
//存好多对儿key-value值
jedis.mset("sex","1","age","27");
//存一对儿key-value值,并且设置有效期,单位为秒
jedis.setex("score",15,"60");
//给key为name的value值后面拼接追加字符串lisi
jedis.append("name","lisi");


利用可视化工具看到的为:



score的颜色是灰色,那是因为它是临时值,在15秒后就会被自动删除掉

//获取一个key的值
String a = jedis.get("name");
//获取多个key的值
List list = jedis.mget("name","age","sex");


第二种数据结构为hashs,这个相当于java中的Map<String,Map<String,String>>;

//添加key为url,值为【key为google,value为www.google.com】的记录
jedis.hset("url","google","www.google.com");
//添加key为url,值为【key为baidu,value为www.baidu.com】的记录
jedis.hset("url","baidu","www.baidu.com");
//批量设置
Map<String,String> map = new HashMap<String,String>();
map.put("name","zhangsan");
map.put("sex","1");
map.put("age","27");
jedis.hmset("userinfo",map);

//获取url中的google对应的值
String a = jedis.hget("url", "google");
//获取url中google、baidu对应的值
List b = jedis.hmget("url","google","baidu");
//获取userinfo中存储的所有信息
Map c = jedis.hgetAll("userinfo");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息