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