Redis 简介、Linux 安装 Redis、Redis 使用
Redis 简介
数据模型
关键优势
Redis 安装
wget http://download.redis.io/releases/redis-3.0.3.tar.gztar xzf redis-3.0.3.tar.gzcd redis-3.0.3make#启动服务的cd /src./redis-server#使用客户端 可以输入ping、info查看信息./redis-cli
yum install epel-releaseyum install redis#启动停止service redis start/stop#客户端redis-cli
Redis 数据类型操作示例
字符串(string)
redis> SET firstname shekharOKredis> GET firstname"shekhar"
redis> INCR votes(integer) 1redis> INCR votes(integer) 2redis> INCR votes(integer) 3redis> DECR votes(integer) 2
其他一些操作(包括 APPEND、GETRANGE、MSET 和 STRLENGTH 也可用于字符串。请参见http://doc.redisfans.com/string/index.html )
列表(list)
有序的字符串列表,按照插入顺序排序。Redis 中的列表是一个有序的字符串集合,您可以向其中添加任意数量的(惟一或非惟一)元素。除了向列表添加元素和从中获取元素的操作之外,Redis 还支持对列表使用取出、推送、范围和其他一些操作。
使用 LPUSH 命令,最近添加的单词位于列表顶部,以前添加的单词会在后面:
redis> LPUSH words austerity(integer) 1redis> LPUSH words socialism moratorium socialism socialism(integer) 5
redis> LRANGE words 0 21) "socialism"2) "socialism"3) "moratorium"
redis > LLEN words(integer) 5
删除:
#删除所有 socialismredis> LREM words 0 socialism(integer) 2
删除列表:
redis 127.0.0.1:6379> DEL words(integer) 1
集合(set)
redis> SADD uniquewords austerity(integer) 1redis> SADD uniquewords socialism(integer) 1redis> SADD uniquewords socialism(integer) 0redis> SMEMBERS uniquewords1) "austerity"2) "socialism"
找出两个集合中的所有共同元素,SINTER 命令。合并多个集合,我使用SUNION 命令。
有序集(zset)
redis> ZADD wordswithlength 9 austerity(integer) 1redis> ZADD wordswithlength 7 furtive(integer) 1redis> ZADD wordswithlength 5 bigot(integer) 1redis> ZRANGE wordswithlength 0 -11) "bigot"2) "furtive"3) "austerity"
要获得有序集的大小,可使用 ZCARD 命令:
redis 127.0.0.1:6379> ZCARD wordswithlength(integer) 3
哈希值(hash)
redis> HSET user:1 name shekhar(integer) 1redis> HSET user:1 lastname gulati(integer) 1redis> HGET user:1redis> HGET user:1 name"shekhar"redis> HGETALL user:11) "name"2) "shekhar"3) "lastname"4) "gulati"
Redis IDE 工具使用(RedisDesktopManager)
1. 下载
链接:http://pan.baidu.com/s/1bnwg0OZ 密码:ekwu
使用java客户端 jedis操作redis
pom
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.1.0</version>
</dependency>
测试代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import redis.clients.jedis.Jedis;
public class TestRedis {
private Jedis jedis;
public TestRedis() {
jedis = new Jedis( "123.59.42.xx" , 6379 );
// 权限认证
// jedis.auth("admin");
}
/**
* redis存储字符串
*/
public void testString() {
jedis.set( "name" , "Jerome苏" );
jedis.expire( "name" , 60 ); // 设置存活时间
// jedis.del("name"); //删除某个键
System.out.println( "name----->>>" + jedis.get( "name" ));
}
/**
* redis操作Map
*/
public void testMap() {
Map<String, String> map = new HashMap<String, String>();
map.put( "name" , "jerome" );
map.put( "age" , "24" );
map.put( "email" , "jerome_s@qq.com" );
jedis.hmset( "user" , map); // 存入redis
// 取出
List<String> rsmap = jedis.hmget( "user" , "name" , "age" );
System.out.println(rsmap);
// 删除map中的某个键值
// jedis.hdel("user", "age");
// System.out.println(jedis.hlen("user")); // 返回key为user的键中存放的值的个数2
// System.out.println(jedis.exists("user"));// 是否存在key为user的记录 返回true
// System.out.println(jedis.hkeys("user"));// 返回map对象中的所有key
// System.out.println(jedis.hvals("user"));// 返回map对象中的所有value
}
/**
* jedis操作List
*/
public void testList() {
// 开始前,先移除所有的内容
jedis.del( "animals" );
// -1表示取得所有
System.out.println(jedis.lrange( "animals" , 0 , - 1 ));
// 存入List
jedis.lpush( "animals" , "cat" );
jedis.lpush( "animals" , "dog" );
jedis.lpush( "animals" , "tiger" );
System.out.println(jedis.lrange( "animals" , 0 , - 1 ));
// 删除单个
jedis.rpush( "animals" , "cat" );
System.out.println(jedis.lrange( "animals" , 0 , - 1 ));
}
/**
* jedis操作Set
*/
public void testSet() {
// 添加
jedis.sadd( "user" , "jerome" );
jedis.sadd( "user" , "jelly" );
jedis.sadd( "user" , "jack" );
jedis.sadd( "user" , "nemo" );
jedis.sadd( "user" , "who" );
// 移除noname
jedis.srem( "user" , "who" );
System.out.println(jedis.smembers( "user" )); // 获取所有加入的value
System.out.println(jedis.sismember( "user" , "who" )); // 判断 who是否是user集合的元素
System.out.println(jedis.srandmember( "user" ));
System.out.println(jedis.scard( "user" )); // 返回集合的元素个数
}
/**
* redis排序
*
* @throws InterruptedException
*/
public void testSort() throws InterruptedException {
// 注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的)
jedis.del( "a" ); // 先清除数据,再加入数据进行测试
jedis.rpush( "a" , "1" );
jedis.lpush( "a" , "6" );
jedis.lpush( "a" , "3" );
jedis.lpush( "a" , "9" );
System.out.println(jedis.lrange( "a" , 0 , - 1 )); // [9, 3, 6, 1]
System.out.println(jedis.sort( "a" )); // [1, 3, 6, 9] //输入排序后结果
System.out.println(jedis.lrange( "a" , 0 , - 1 ));
}
public static void main(String[] args) {
TestRedis redis = new TestRedis();
redis.testMap();
// RedisUtil.getJedis().set("newname", "中文测试");
// System.out.println(RedisUtil.getJedis().get("newname"));
}
}
|
使用连接池
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public final class RedisUtil {
// Redis服务器IP
private static String ADDR = "192.168.0.100" ;
// Redis的端口号
private static int PORT = 6379 ;
// 访问密码
// private static String AUTH = "admin";
// 可用连接实例的最大数目,默认值为8;
// 如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
private static int MAX_ACTIVE = 1024 ;
// 控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。
private static int MAX_IDLE = 200 ;
// 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException;
private static int MAX_WAIT = 10000 ;
private static int TIMEOUT = 10000 ;
// 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
private static boolean TEST_ON_BORROW = true ;
private static JedisPool jedisPool = null ;
/**
* 初始化Redis连接池
*/
static {
try {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxActive(MAX_ACTIVE);
config.setMaxIdle(MAX_IDLE);
config.setMaxWait(MAX_WAIT);
config.setTestOnBorrow(TEST_ON_BORROW);
// jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);
jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取Jedis实例
*
* @return
*/
public synchronized static Jedis getJedis() {
try {
if (jedisPool != null ) {
Jedis resource = jedisPool.getResource();
return resource;
} else {
return null ;
}
} catch (Exception e) {
e.printStackTrace();
return null ;
}
}
/**
* 释放jedis资源
*
* @param jedis
*/
public static void returnResource( final Jedis jedis) {
if (jedis != null ) {
jedisPool.returnResource(jedis);
}
}
}
|
code: 链接:http://pan.baidu.com/s/1qW5PJic 密码:pyha
参考
代码
https://github.com/JeromeSuz/demo_code_repo/tree/master/src/main/java/redis
Redis 简介、Linux 安装 Redis、Redis 使用相关推荐
- Redis简介及安装
Redis简介及安装 文章目录 Redis简介及安装 一.nosql介绍 1.NoSQL 2.NoSQL和SQL数据库的比较: 二.Redis 1.简介 2.Redis特性 3.Redis 优势 4. ...
- linux安装运行redis
redis是一个非关系型数据库,是一个存储键值对的数据库,通常被称为数据结构服务器. 值(value)可以是字符串(String).哈希(Hash).列表(list).集合(sets)和有序集合(so ...
- 【赵强老师】Redis简介和安装配置
先看视频. [赵强老师]Redis简介和安装配置 什么是Redis? Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串 ...
- ubuntu 安装php redis,ubuntu上安装php redis
ubuntu下安装php redis ubuntu下安装php redis 1.安装redis服务端 sudo apt-get install redis-server 测试redis是否安装成功: ...
- Linux安装最新Redis
Redis安装(Linux) 环境: centOs 7 (1)在机器上创建目录Redis,并进入,使用命令: mkdir /redis 进入官网:redis.io,复制最新版本redis下载链接地址 ...
- linux镜像包含redis吗,Linux虚拟机镜像\redis安装
安装redis首先来排个坑,我安装完之后怎么也启动不了服务端,根本找不到文件,再Xftp中看了一下redis目录才发现都是以.C结尾的文件,这时候才想起来redis是C语言编写的,还需要编译 那么首先 ...
- 【Redis】Linux安装Redis
Linux安装Redis 一.下载并上传 二.安装 2.1.解压 2.2.安装 2.3.更改配置 2.3.1.密码 2.3.2.远程登入 三.启动 一.下载并上传 官网下载地址 本文使用的7.0.4 ...
- Linux安装部署Redis
文章目录 1. 前言 2. 下载Redis 3. 解压并安装Redis 4. 修改redis.conf的参数配置 5. 使用redis启动脚本设置开机自启动 6. 其他redis.conf配置 7. ...
- linux redis -p,linux 安装redis
安装: 1.获取redis资源 wget http://download.redis.io/releases/redis-4.0.8.tar.gz 2.解压 tar xzvf redis-4.0.8. ...
- Linux安装配置Redis CentOS 7 下安装Redis
Redis是一个高性能的,开源key-value型数据库.是构建高性能,可扩展的Web应用的完美解决方案,可以内存存储亦可持久化存储.因为要使用跨进程,跨服务级别的数据缓存,在对比多个方案后,决定使用 ...
最新文章
- Java ReentrantLock 详解
- C++ code:数值计算之矩形法求解积分问题
- Python-OpenCV--直线提取
- Mule web service调用中的复杂类型传递
- 【C语言进阶深度学习记录】二十一 # 和 ## 号操作符的使用与分析
- 一行代码 实现集合去重
- 利用python创建学生管理系统软件代码赏析
- css优先级机制说明
- 《团队名称》第八次团队作业:Alpha冲刺day1
- ios 点生成线路 百度地图_网站地图全面解析
- Hadoop中Yarnrunner里面submit Job以及AM生成 至Job处理过程源码解析
- 详谈归并排序时间复杂度过程推导----软考
- 正项级数敛散性的判别
- python 蒙特卡罗_python实现蒙特卡罗方法(代码示例)
- 【攻防世界 | WP】CAT
- FFmpeg给视频添加水印
- CentOS 7 安装 Mysql 8.0 教程
- Redis 在windows中启动
- 拼多多拼单显示内部服务器错误,拼多多为什么拼不了?拼多多怎么拼单?
- conda 安装第三方包
热门文章
- python以 划分语句块_Python使用符号____ 标示注释;以____划分语句块。_学小易找答案...
- 互联网架构升级改造演进过程,一文带你了解互联网架构的变迁
- not only but also
- mysql数据库:微信用户昵称emoji 怎么保存到数据库中。
- H3C Cloud Lab 华三模拟器下载网址
- 常用网站和遇到问题整理
- windows netsh设置代理服务器/端口转发
- 「Python海龟画图」利用海龟画笔绘制六芒星阵
- 北川邓家“刘汉小学”无一死亡奇迹背后的真相
- 最值得入手的开放式运动耳机有哪些,试试这几款骨传导运动耳机