redis(二)----基本操作
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(二)----基本操作的更多相关文章
- java对redis的基本操作,ZZ
java对redis的基本操作 http://www.cnblogs.com/edisonfeng/p/3571870.html
- java 连接redis 以及基本操作
一.首先下载安装redis 二.项目搭建 1.搭建一个maven 工程 2. 在pom.xml文件的dependencies节点下增加如下内容: <!-- resis --> <de ...
- 分布式数据存储 之 Redis(二) —— spring中的缓存抽象
分布式数据存储 之 Redis(二) -- spring中的缓存抽象 一.spring boot 中的 StringRedisTemplate 1.StringRedisTemplate Demo 第 ...
- 深入理解MVC C#+HtmlAgilityPack+Dapper走一波爬虫 StackExchange.Redis 二次封装 C# WPF 用MediaElement控件实现视频循环播放 net 异步与同步
深入理解MVC MVC无人不知,可很多程序员对MVC的概念的理解似乎有误,换言之他们一直在错用MVC,尽管即使如此软件也能被写出来,然而软件内部代码的组织方式却是不科学的,这会影响到软件的可维护性 ...
- java对redis的基本操作
一.server端安装 1.下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6
- python下redis的基本操作:
1. 基本操作: >>> import redis >>> print redis.__file__ /usr/local/lib/python2.7/dist-p ...
- java对redis的基本操作(初识)
一.server端安装 1.下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6
- java对redis的基本操作(一)
一.server端安装 1.下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6
- Redis(二十一):Redis性能问题排查解决手册(转)
性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息.通过这些信息来分析文章后面提到的一些性能指标. info命令输出的数 ...
- java加载redis以及基本操作
前言: Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server).Redis的键值可以包括字符串(st ...
随机推荐
- sessionManager配置
在sessionManager配置的时候,有两个属性, 在这个类中,cacheManager是要注入到sessionDao中的,但要求sessionDao实现CacheManagerAware接口 C ...
- crackme---攻防世界
首先下载附件之后,查壳 虽然什么也没有发现,但是看一下区段就知道,这个是北斗的壳.所以我们首先载入od开始把壳脱掉 这里面也可以看到pushfd和pushad是北斗壳的特征 这里面我使用是esp定律脱 ...
- 《动手学深度学习》系列笔记 —— 语言模型(n元语法、随机采样、连续采样)
目录 1. 语言模型 2. n元语法 3. 语言模型数据集 4. 时序数据的采样 4.1 随机采样 4.2 相邻采样 一段自然语言文本可以看作是一个离散时间序列,给定一个长度为\(T\)的词的序列\( ...
- css的手机适配
在html篇里提到设置视口宽度和设备宽度,固定的meta配置就是写死的,==死记硬背== 应该清楚的是手机端的适配应该克服的难题就是宽度根据手机屏幕的大小变化,而高度却没有办法跟随比例变化,也就是宽高 ...
- Day4 - I - Trucking HDU - 2962
A certain local trucking company would like to transport some goods on a cargo truck from one place ...
- redis数据导入与导出以及配置使用
最近在研究redis 遇到redis requires Ruby version >= 2.2.2问题 解决办法是 先安装rvm,再把ruby版本提升至2.3.3 1.安装curl sudo y ...
- 025、MySQL字符串大小写转化函数,文本转化大写,文本转化小写
#变大写 SELECT UPPER('abcdABCD123a'); #ABCDABCD123A SELECT UCASE('abcdABCD123a'); #ABCDABCD123A #变小写 SE ...
- pyhton scipy最小二乘法(scipy.linalg.lstsq模块)
最小二乘法则是一种统计学习优化技术,它的目标是最小化误差平方之和来作为目标J(θ)J(θ),从而找到最优模型. 7. SciPy最小二乘法 最小二乘法则是一种统计学习优化技术,它的目标是最小化误差平方 ...
- linux安装postgresql数据库
本文提供数据库安装脚本,有部分需要优化,就是脚本中的方法执行存在前后依赖,但是代码里面没有对上一个执行结果进行判断,如果提供的路径和安装包没有问题,脚本能够正常执行 #!/bin/bash # ins ...
- 05 MySQL数据类型的选择与使用
数据类型的选择 1.CHAR与VARCHAR 存储/检索的方式不同. CHAR是固定长度,而VARCHAR是可变长度 非SQLMode下,超 ...