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. 获取网卡MAC、硬盘序列号、CPU_ID、BIOS编号

    抄来的 获取网卡MAC.硬盘序列号.CPU ID.BIOS编号 本文中所有原理及思想均取自网络,有修改.其中获取硬盘序列号.获取CPU编号.获取BIOS编号的原始代码的著作权归各自作者所有. 以下代码 ...

  2. Vulkan SDK Demo 之一 熟悉

    DiligentEngine的API是D3d11和D3D12风格的,vulkan也被封装成了这种风格的API. 在了解Diligent Engine是如何对vulkan进行封装之前,我准备先学习下Vu ...

  3. 012.Delphi插件之QPlugins,多实例内嵌窗口服务

    这个DEMO中主要是在DLL中建立了一个IDockableControl类,并在DLL的子类中写了具体的实现方法. 在主程序exe中,找到这个服务,然后调用DLL的内嵌方法,把DLL插件窗口内嵌到主程 ...

  4. 时间戳,秒级,毫秒级转换DateTime格式

    解决了本地时间和格林尼治时间差问题 function DateTimeToTp(ConvDate: TDateTime): time_t;var zi: TTimeZoneInformation;be ...

  5. Problem I: Ingenious Lottery Tickets

    Problem I: Ingenious Lottery Tickets Your friend Superstitious Stanley is always getting himself int ...

  6. Wordpress自动更新失败

    Wordpress自动更新失败 一.手动升级Wordpress教程第一步:备份好Wordpress数据 在决定手动升级Wordpress前,你需要做好Wordpress的数据备份工作,以防手动升级失败 ...

  7. python学习笔记2018-9-18

    1.可选参数传递 此处m=1并不是写定m必为1,而是m为可选参数,当不对其进行赋值时,其默认值为1. 2.函数的返回值 return可以传递0个返回值,也可以传递任意多个返回值 3.局部变量与全局变量 ...

  8. mongoose 报错:DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead

    mongoose.set('useCreateIndex', true)    // 加上这个

  9. 指令——mv

    一个完整的指令的标准格式: Linux通用的格式——#指令主体(空格) [选项](空格) [操作对象] 一个指令可以包含多个选项,操作对象也可以是多个. 指令:mv   (move,移动,剪切) 作用 ...

  10. 干货分享:学术Essay写作流程及写作技巧详解

    Academic essay是指留学生作业中的一种,其范围非常广泛,可以是任何一种话题.而学术essay主要是指其中比较正式的.客观的话题,有明确的研究目的与研究对象.例如“Research on t ...