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. ReadAsm2

    首先查看题目 下载文档之后用虚拟机打开(我用的是Kali Linux) 推测应该是对这个func函数反汇编结果应该就出来了 用c写一下算出结果 #include<bits/stdc++.h> ...

  2. Pycharm激活码(失效更新)

    该方法不需要修改Hosts, 如果修改过请删除后再激活. 获取激活码: http://idea.medeming.com/jet/images/jihuoma.txt http://idea.mede ...

  3. 数据库连接需要dll

    连接oracle引用: Oracle.ManagedDataAccess.dll和Oracle.ManagedDataAccess.EntityFramework.dll, 连接sqlserver 连 ...

  4. ACM-最优配餐

    题目描述: 最优配餐  时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问 ...

  5. win下的常用8个命令

    windows下常用的几个指令 一,ping 它是用来检查网络是否通畅或者网络连接速度的命令.作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的 ...

  6. UVA - 10382 Watering Grass(几何)

    题意:有一个矩形,n个圆.已知矩形的长宽和圆的半径,问最少需多少个圆将矩形完全覆盖. 分析: 1.首先求圆与矩形的长的交点,若无交点,则一定不能对用最少的圆覆盖矩形有贡献. 2.如果两个圆与矩形相交所 ...

  7. Oracle rownum用法、分页

    转载:ORACLE 中ROWNUM用法总结!  第一部分 1.对于 Oracle 的 rownum 问题,很多资料都说不支持 >, >= , =,  between...and ,只能用 ...

  8. thinkphp调用sqlserver储存过程返回多个结果集

    首先安装扩展 windows 分为两个步骤 找到对应自己PHP版本的pdo扩展,下载解压出来,并且在php.ini里面启用扩展,需要注意的问题是php版本以及是否为安全版本 下载 ODBC Drive ...

  9. 046-unset对静态变量无法销毁

    <?php function digui() { static $count = 0; echo $count; $count++; unset($count); } digui(); digu ...

  10. 095-PHP遍历关联数组,并修改数组元素值

    <?php $arr=array('I'=>1,'II'=>2,'III'=>3,'IV'=>4,'V'=>5); //定义一个数组 echo '修改之前数组信息: ...