1. 程式人生 > >Redis快速入門

Redis快速入門

pool har 語法 ansi 使用 https 測試的 對象 sta

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快速入門