1. redis介绍

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)

2. jar包准备

JAVA操作redis基本包:http://mvnrepository.com/artifact/redis.clients/jedis

如果需要使用redis连接池,还需要下载common-pool包:http://commons.apache.org/proper/commons-pool/download_pool.cgi

3. 程序结构目录

4. 测试源码

package com.redis;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import redis.clients.jedis.Jedis; public class MyRedis {
private Jedis jedis; public void setup(){
jedis = new Jedis("127.0.0.1", 6379);
} public void inst(){
jedis.close();
} //清除所有数据
public void clear(){
Set<String> set = jedis.keys("*");
for (String key : set) {
jedis.del(key); //删除
}
} //现实所有键名和类型
public void show(){
Set<String> set = jedis.keys("*");
System.out.println("当前共用"+set.size()+"个数据,分别为:");
for (String key : set) {
System.out.println(key+"类型为"+jedis.type(key));
}
} //redis处理字符串
public void testString(){
jedis.set("String", "LYC"); //添加数据
System.out.println(jedis.get("String"));
jedis.append("String", " LOVE BYQ"); //拼接字符串
System.out.println(jedis.get("String")); jedis.mset("userName", "LYC", "passWord", "-+", "age", "28"); //添加多条
System.out.println("userName:"+jedis.get("userName"));
System.out.println("passWord:"+jedis.get("passWord"));
System.out.println("age:"+jedis.get("age")); jedis.incr("age"); //加一
System.out.println("age:"+jedis.get("age"));
jedis.incrBy("age", 2); //加二
System.out.println("age:"+jedis.get("age"));
jedis.incrByFloat("age", 3.5f);
System.out.println("age:"+jedis.get("age")); } //redis处理Map
public void testMap(){
Map<String, String> map = new HashMap<String, String>();
map.put("userName", "LYC");
map.put("passWord", "-+");
map.put("age", "28");
jedis.hmset("user1", map); //添加map数据
System.out.println(jedis.hmget("user1", "userName", "passWord", "age")); //注意hmget返回的是List<String>
jedis.hdel("user1", "passWord"); //删除map中的某个键值
System.out.println(jedis.hmget("user1", "userName", "passWord", "age")); //注意hmget返回的是List<String>
jedis.hset("user1", "passWord", "*#");
System.out.println(jedis.hmget("user1", "userName", "passWord", "age")); //注意hmget返回的是List<String>
System.out.println(jedis.hlen("user1")); //返回key为user1的键中存放的值的个数
System.out.println(jedis.exists("user1"));//是否存在key为user1的记录
System.out.println(jedis.hkeys("user1"));//返回map对象中的所有key
System.out.println(jedis.hvals("user1"));//返回map对象中的所有value
} //redis处理List
public void testList(){
jedis.lpush("userList1", "张三"); //添加List数据
jedis.lpush("userList1", "李四"); //添加List数据
jedis.lpush("userList1", "王五"); //添加List数据
//读取List数据。第一个是key;第二个是起始位置;第三个是结束位置, -1表示取得所有。
System.out.println(jedis.lrange("userList1", 0, -1)); // jedis.rpush("userList2", "张三"); //添加List数据
jedis.rpush("userList2", "李四"); //添加List数据
jedis.rpush("userList2", "王五"); //添加List数据
System.out.println(jedis.lrange("userList2", 0, -1)); jedis.rpush("sort", "2"); //添加List数据
jedis.rpush("sort", "3"); //添加List数据
jedis.rpush("sort", "1"); //添加List数据
System.out.println(jedis.lrange("sort", 0, -1));
jedis.sort("sort"); //排序
System.out.println(jedis.lrange("sort", 0, -1));
} //redis处理集合
public void testSet(){
jedis.sadd("userSet", "张三"); //添加set数据
jedis.sadd("userSet", "李四"); //添加set数据
jedis.sadd("userSet", "王五"); //添加set数据
jedis.sadd("userSet", "某人"); //添加set数据
System.out.println(jedis.smembers("userSet"));
jedis.srem("userSet", "某人");
System.out.println(jedis.smembers("userSet")); System.out.println(jedis.sismember("userSet", "赵六")); //判断 赵六 是否是userSet集合的元素
System.out.println(jedis.srandmember("userSet")); //随机获取集合中一个元素
System.out.println(jedis.srandmember("userSet")); //随机获取集合中一个元素
System.out.println(jedis.srandmember("userSet")); //随机获取集合中一个元素
System.out.println(jedis.scard("userSet"));
}
}
package com.redis;

public class TestMain {
public static void main(String[] args) {
MyRedis myRedis = new MyRedis();
myRedis.setup();
myRedis.clear();
myRedis.show();
System.out.println("------------testString------------");
myRedis.testString();
System.out.println("------------testMap------------");
myRedis.testMap();
System.out.println("------------testList------------");
myRedis.testList();
System.out.println("------------testSet------------");
myRedis.testSet();
System.out.println("------------Over------------");
myRedis.show();
myRedis.clear();
myRedis.inst();
}
}

打印结果为:

当前共用0个数据,分别为:
------------testString------------
LYC
LYC LOVE BYQ
userName:LYC
passWord:-+
age:
age:
age:
age:34.5
------------testMap------------
[LYC, -+, ]
[LYC, null, ]
[LYC, *#, ] true
[passWord, userName, age]
[LYC, , *#]
------------testList------------
[王五, 李四, 张三]
[张三, 李四, 王五]
[, , ]
[, , ]
------------testSet------------
[某人, 王五, 李四, 张三]
[王五, 李四, 张三]
false
李四
张三
张三 ------------Over------------
当前共用9个数据,分别为:
sort类型为list
userSet类型为set
String类型为string
age类型为string
user1类型为hash
userList1类型为list
userName类型为string
userList2类型为list
passWord类型为string

redis(二)----基本操作的更多相关文章

  1. java对redis的基本操作,ZZ

    java对redis的基本操作 http://www.cnblogs.com/edisonfeng/p/3571870.html

  2. java 连接redis 以及基本操作

    一.首先下载安装redis 二.项目搭建 1.搭建一个maven 工程 2. 在pom.xml文件的dependencies节点下增加如下内容: <!-- resis --> <de ...

  3. 分布式数据存储 之 Redis(二) —— spring中的缓存抽象

    分布式数据存储 之 Redis(二) -- spring中的缓存抽象 一.spring boot 中的 StringRedisTemplate 1.StringRedisTemplate Demo 第 ...

  4. 深入理解MVC C#+HtmlAgilityPack+Dapper走一波爬虫 StackExchange.Redis 二次封装 C# WPF 用MediaElement控件实现视频循环播放 net 异步与同步

    深入理解MVC   MVC无人不知,可很多程序员对MVC的概念的理解似乎有误,换言之他们一直在错用MVC,尽管即使如此软件也能被写出来,然而软件内部代码的组织方式却是不科学的,这会影响到软件的可维护性 ...

  5. java对redis的基本操作

    一.server端安装 1.下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6

  6. python下redis的基本操作:

    1. 基本操作: >>> import redis >>> print redis.__file__ /usr/local/lib/python2.7/dist-p ...

  7. java对redis的基本操作(初识)

    一.server端安装 1.下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6

  8. java对redis的基本操作(一)

    一.server端安装 1.下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6

  9. Redis(二十一):Redis性能问题排查解决手册(转)

    性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息.通过这些信息来分析文章后面提到的一些性能指标. info命令输出的数 ...

  10. java加载redis以及基本操作

    前言: Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server).Redis的键值可以包括字符串(st ...

随机推荐

  1. S7-300过程映像区详解

      一.概念  W过程镜像区输入字 PIW立即输入区字  PIW不用等系统刷新,立即读入 IW等待系统刷新后读入   二.PIW/IW,PQW/QW  引用西门子论坛一位大侠的比方加深理解:      ...

  2. Windows驱动开发-设备读写方式

    设备读写方式共三种: 方式 Flag 特点 缓冲区方式读写 DO_BUFFERED_IO I/O管理器先创建一个与用户模式数据缓冲区大小相等的系统缓冲区.而你的驱动程序将使用这个系统缓冲区工作.I/O ...

  3. uni app中关于图片的分包加载

    因为在项目中使用了大量的静态资源图片,使得主包体积过大, 而把这些图片全部放到服务器又有点麻烦,就想能不能把图片也分包,但是直接放在分包下的话导致图片资源找不到了, 在社区中看到大佬分享的十分有用,特 ...

  4. liunx mysql 5.7 二进制安装

    liunx 5.6版本 本人安装次数不下20次,基本上按照正常的操作流程不会出现什么问题,一切顺利. 今天开发新项目需要按照mysql 5.7 版本.mysql 5.7版本和mysql 5.6版本变化 ...

  5. Java的SPI机制

    目录 1. 什么是SPI 2. 为什么要使用SPI 3. 关于策略模式和SPI的几点区别 4. 使用介绍或者说约定 4.1 首先介绍几个名词 4.2 约定 5. 具体的demo实现 5.1 创建服务提 ...

  6. 深入理解JVM Note

    第2章 Java内存区域与内存溢出异常 运行时数据区域 在虚拟机有栈.堆和方法区. 线程共享的:堆.方法区 不共享的:栈.程序计数器(代码执行的行号) 程序计数器(Program Counter Re ...

  7. PHP mb_substr mbstring 函数

    定义和用法 mb_substr - 获取部分字符串 版本支持 PHP4 PHP5 PHP7 支持 支持 支持 5.4.8 length 传入 NULL,则从 start 提取到字符串的结尾处. 在之前 ...

  8. 人脸识别 API Key和Secret Key作用

    App key简称API接口验证序号,是用于验证API接入合法性的.接入哪个网站的API接口,就需要这个网站允许才能够接入,如果简单比喻的话:可以理解成是登陆网站的用户名 App Secret简称AP ...

  9. HDU - 6152 Friend-Graph(暴力)

    题意:给定n个人的关系,若存在三个及以上的人两两友好或两两不友好,则"Bad Team!",否则"Great Team!". 分析:3000*3000内存100 ...

  10. 在 CentOS 中部署 KMS 服务器(vlmcsd)

    准备 vlmcsd 下载 vlmcsd 本文使用的 vlmcsd 版本为 svn1111,支持的产品: Windows Vista – 10Windows Server 2008 - 2016Offi ...