Redis 入门

简介

Redis是一个高性能的key-value数据库,支持数据的持久化。它可以用作数据库、缓存和消息中间件。优势如下:

  • 性能高
  • 数据类型丰富
  • 原子操作

应用场景

Redis 的应用场景很多,举例如下:

  • 热点数据缓存
  • 限时任务处理
  • 延时操作
  • 分布式锁
  • 排行榜
  • 计数器

数据类型

redis支持的数据类型如下:

  • 字符串
  • 哈希
  • 列表
  • 集合
  • 有序集合
字符串(string)

字符串由一对一的键值对构成。

SET name "hello"		// 设置 key 为 name,value 为 "hello"
GET name				// 获取 key 为 name 的值
DEL name				// 删除 key
RENAME name				// 重命名 key
EXISTS name				// 检查 key 是否存在
STRLEN name				// 返回字符串的长度
GETRANGE name 0 3		// 获取指定序号范围内的子串
SETNX name "world"		// 只有当 key 不存在时设置 key 的值
哈希(hash)

redis 的 hash 是一张 field 和 value 的映射表,即一个哈希具有多个键值对的映射。

HMSET student name "tom" age 20		// 哈希名为 student,具有 name 和 age 两个字段
HGETALL student						// 获取该哈希的所有字段
HGET student name					// 获取 name 字段的值
HDEL student name					// 删除 name 字段
HLEN student						// 返回哈希中字段的数量
HSETNX student name "Jack"			// 只有当哈希的该字段不存在时设置值
HVALS student						// 获取哈希中所有的值
列表(list)

列表由多个元素组成。

LPUSH studentName "Tom"
LPUSH studentName "Jack"
LPUSH studentName "Don"
LINDEX studentName 0				// 获取序号为 0 的元素,序号范围为 0 ~ len-1
LPOP studentName					// 取出并移除第一个元素,即序号为 0 的元素RPOP studentName     				// 取出并移除最后一个元素,命令中的 L 和 R 可看作是列表的左和右。
LRANGE studentName 0 3				// 获取序号在 [0, 3] 内的元素
集合(set)

Set 是字符串的无序集合,集合中的元素唯一,不能重复。

SADD country "cn"
SADD country "us"
SMEMBERS country		// 获取集合中的所有元素
SPOP country			// 移除并返回集合中的一个随机元素
SREM country "cn"		// 移除集合中的元素,不存在则会被忽略
SCARD country			// 获取集合中成员的数量
有序集合(sorted set)

有序集合中的元素也是不能重复的,但对于每一个元素,有一个对应的 double 分数,redis 通过该分数进行排序。

ZADD country 100 "cn"
ZADD country 200 "us"
ZRANGE country 0 1		// 根据序号获取数据
ZCOUNT country 0 2		// 计算在有序集合中指定区间分数的成员数
ZRANK country “cn”		// 返回元素的分数排名,从小到大排列
ZREVRANK country "cn"	// 返回元素的分数排名,从大到小排列
ZSCORE country "cn"		// 返回元素的分数值

Jedis 简单使用

Java 中通过 Jedis 类进行 redis 的操作,以下为简单使用代码:

//连接本地的 Redis 服务      
Jedis jedis = new Jedis("localhost");      
System.out.println("Connection to server sucessfully");      
//查看服务是否运行      
System.out.println("Server is running: "+jedis.ping());
// 字符串
jedis.set("name", "tom");
System.out.println(jedis.get("tom"));
// 列表
jedis.lpush("country", "cn"); 
jedis.lpush("country", "usa");  
jedis.lpush("country", "uk");
List<String> list = jedis.lrange("country", 0, 2);
for (String country: list) {
	System.out.println(country);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值