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. PAT (Advanced Level) 1128~1131:1128N皇后 1129 模拟推荐系统(set<Node>优化) 1130 中缀表达式

    1128 N Queens Puzzle(20 分) 题意:N皇后问题.按列依次给定N个皇后的行号,问N个皇后是否能同时不存在行冲突.列冲突和主副对角线冲突. 分析: 1.根据题意一定不存在列冲突,所 ...

  2. 8051单片机中访问int中字节的方法

    在使用单片机中,unsigned int 占2个字节,unsigned char 占一个字节.而单片机是实行的字节寻址.16字节的bit寻址实在是不好用, 不好用在不能建数组. 在实际的开发过程中,要 ...

  3. Windows 10工程版本泄露全新设计的操作中心圆角样式

    早些时候微软错误地向Windows 10所有测试通道推送内部工程版本,该版本构建后尚未经过微软内部测试. 当然本身微软也没准备推送所以该版本里很多新功能未被关闭,而成功升级的用户则可以立即查看这些功能 ...

  4. WireShark 之抓包QQ协议

  5. GNS3 模拟免费ARP

    R2 : conf t int f0/0 no shutdown ip add 192.168.1.254 255.255.255.0 end R1 : conf t int f0/0 no shut ...

  6. simplecheck

    环境:win10 工具:jadx .夜神模拟器.pycharm 下载好了之后加载到模拟器 输入正确的flag验证 加载到jadx.查看MainAtivity if语句进行验证是否正确,如果正确就输出y ...

  7. 015.Delphi插件之QPlugins,FMX插件窗口

    内嵌FMX的插件窗口,效果还是很可以的.退出时,会报错,很诡异啊. 主窗口代码如下 unit Frm_Main; interface uses Winapi.Windows, Winapi.Messa ...

  8. 吴裕雄--天生自然java开发常用类库学习笔记:List接口

    import java.util.ArrayList ; import java.util.List ; import java.util.Collection ; public class Arra ...

  9. JavaScript中的apply()方法和call()

    apply()和call()的真正用武之地是能够扩充函数赖以运行的作用域   两个函数的第一个参数是都是,要执行语句的作业域,即this 区别是 apply后面只能传一个大参数,call后面参数只能一 ...

  10. maven的概念模型及maven坐标

     1.概念模型 项目对象模型:一个maven工程有一个pom.xml文件,通过pom.xml文件定义项目的坐标.项目依赖.项目信息.插件目标等. 依赖管理系统:通过maven的依赖管理对项目所依赖的j ...