首页 > 代码库 > 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快速入门