首页 > 代码库 > Redis快速入门

Redis快速入门

Redis快速入门

一、简介

           Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。Redis所有操作都是原子性的。

二、Linux下的安装

  下载地址:https://redis.io/downloa 下载好后直接用tar解压,然后make编译。编译好后cd到src目录下,找到redis服务程序redis-server和用于测试的客户端程序redis-cli,我们来按redis.conf的配置开启redis试试! 

$ ./src/redis-server redis.conf
$ cd src
$ ./redis-cli
127.0.0.1:6379> set lichking shadowplay
OK
127.0.0.1:6379> get lichking
"shadowplay"
127.0.0.1:6379>

 

三、配置

    redis的配置文件在安装目录下,名为redis.conf。我们可以通过redis的config命令来更改或者获取配置。

   语法:

        1)查看配置

         config get key(可以使用通配符*查看所有)

        2)设置配置

        config set key value

 

四、数据类型

  一)String

  string类型是二进制安全的,即redis的string类型可以包含任何数据,比如序列化的对象,图片等。string是 redis的最基本类型,一个键最大能存储512MB。

  命令为get 和 set 

  二)Hash    

  Hash 是一个键名对集合。Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。

 

 1 127.0.0.1:6379> hmset user:1 name tang password tang tel 10000
 2 OK
 3 127.0.0.1:6379> hgetall user:1
 4 1) "name"
 5 2) "tang"
 6 3) "password"
 7 4) "tang"
 8 5) "tel"
 9 6) "10000"
10 127.0.0.1:6379>

   三)List

   Redis中List是按插入顺序排列的简单字符串列表。可以从表的头部和尾部添加数据。

   

127.0.0.1:6379> lpush tang one
(integer) 1
127.0.0.1:6379> lpush tang tow
(integer) 2
127.0.0.1:6379> lpush tang three
(integer) 3
127.0.0.1:6379> lrange tang 0 10
1) "three"
2) "tow"
3) "one"
127.0.0.1:6379> lrange tang 0 3
1) "three"
2) "tow"
3) "one"

value内容可以重复:

127.0.0.1:6379> lpush tang one
(integer) 4
127.0.0.1:6379> lrange tang 0 5
1) "one"
2) "three"
3) "tow"
4) "one"

   四)Set

   无序集合,通过哈希表实现,不可重复。

127.0.0.1:6379> sadd assassin zed
(integer) 1
127.0.0.1:6379> sadd assassin akli
127.0.0.1:6379> sadd assassin zed
(integer) 0
127.0.0.1:6379> smembers assassin
1) "akli"
2) "zed"

 

   五)zset(有序集合)

 

127.0.0.1:6379> zadd killer 0 Harry
(integer) 1
127.0.0.1:6379> zadd killer 1 Zack
(integer) 1
127.0.0.1:6379> zadd killer 2 Zack
(integer) 0
127.0.0.1:6379> zrangebyscore killer 0 3
1) "Harry"
2) "Zack"

 

五、Redis在Java项目中的简单应用

   1)添加maven依赖:

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

    2)当然少不了properties文件:

redis.maxIdle=30
redis.minIdle=10
redis.maxTotal=100
redis.url=localhost
redis.port=6379

   3)Jedis帮助类 

ackage com.tang.common.utils;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * Jedis帮助类
 * @author: Tang Jiujia
 * @version: 2017/4/29 0029 11:32
 */
public class JedisUtil {

    private static JedisPool pool=null;

    static {
        InputStream in = JedisUtil.class.getClassLoader().getResourceAsStream("redis.properties");
        Properties properties = new Properties();
        try {
            properties.load(in);
        } catch (IOException e) {
            e.printStackTrace();
        }

        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxIdle(Integer.parseInt(properties.
                getProperty("redis.maxIdle").toString()));
        config.setMinIdle(Integer.parseInt(properties.
                getProperty("redis.minIdle").toString()));
        config.setMaxTotal(Integer.parseInt(properties.
                getProperty("redis.maxTotal").toString()));
        pool=new JedisPool(config,properties.getProperty("redis.url"),
                Integer.parseInt(properties.getProperty("redis.port").toString()));
    }

    public static Jedis getJdis(){
        return pool.getResource();
    }
}

   4)用一用:

String categoriesJson;
Jedis jedis = JedisUtil.getJdis();
categoriesJson = jedis.get("categories"); 

   突出的就是一个简单,以前项目上的没怎么去验证,大概就是这样了。

Redis快速入门