redis是一个key-value存储系统。它支持存储的value类型很多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。为了保证效率,数据都是缓存在内存中。

在二维码登录功能里面,我后来把uuid由

HashMap<String, UserLoginInfoVO> loginMap存储改成了redis来存储。

比如LongConnectionCheckServlet

            // 检测登录
// UserLoginInfoVO userVo = LoginUser.getLoginMap().get(uuid);
// System.out.println("userVo:" + userVo);
// if (userVo != null) {
// bool = false;
// jsonStr = "{\"uname\":\"" + userVo.getUserName() + "\"}";
// LoginUser.getLoginMap().remove(uuid);
// } else {
//
// if (new Date().getTime() - inTime > 5000) {
// bool = false;
// }
// }
if (jedis.get(uuid) != null) {
bool = false;
jsonStr = "{\"uname\":\"" + jedis.get(uuid) + "\"}";
jedis.del(uuid);
} else {
if (new Date().getTime() - inTime > 5000) {
bool = false;
}
}

比如PhoneLoginServlet.java

       if (bool) {
// 将登陆信息存入map
// UserLoginInfoVO userVo = LoginUser.getLoginMap().get(uuid);
// if (userVo == null) {
// userVo = new UserLoginInfoVO();
// userVo.setUserName(uname);
// userVo.setUserPass(upwd);
// LoginUser.getLoginMap().put(uuid, userVo);
// } if (jedis.get(uuid) == null) {
jedis.set(uuid, uname);
System.out.println("redis 存储了:" + uuid + " " + uname);
}
}

我只存了uuid和name。反正省了很多代码而且效率提高~

spring下使用很简单:

pom.xml中添加 :

    <dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.6.1</version>
</dependency>

 打开cmd,启动redis-server(我把redis文件解压在C盘redis文件夹中):

Redis Java String(字符串)实例

import redis.clients.jedis.Jedis;

public class RedisStringJava {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("localhost");
System.out.println("连接成功");
//设置 redis 字符串数据
jedis.set("hello", "lingzi");
// 获取存储的数据并输出
System.out.println("redis 存储的字符串为: "+ jedis.get("hello"));
}
}

编译后结果:

连接成功
redis 存储的字符串为: lingzi

Redis Java List(列表) 实例

import java.util.List;
import redis.clients.jedis.Jedis;
public class RedisJava {
private static Jedis jedis;
public static void main(String[] args) {
// 连接本地的 Redis 服务
jedis = new Jedis("localhost");
System.out.println("连接成功");
// 存储数据到列表中
jedis.lpush("show", "ling");
jedis.lpush("show", "zi");
jedis.lpush("show", "hello");
jedis.lpush("show", "yaha");
// 获取存储的数据并输出
List<String> list = jedis.lrange("show", 0, 3);
for (int i = 0; i < list.size(); i++) {
System.out.println("列表项为: " + list.get(i));
}
}
}

编译后结果:

连接成功
列表项为: yaha
列表项为: hello
列表项为: zi
列表项为: ling

Redis Java Keys实例

import java.util.Iterator;
import java.util.Set;
import redis.clients.jedis.Jedis; public class RedisJava {
private static Jedis jedis; public static void main(String[] args) {
// 连接本地的 Redis 服务
jedis = new Jedis("localhost");
System.out.println("连接成功");
// 获取数据并输出
Set<String> keys = jedis.keys("*");
Iterator<String> it = keys.iterator();
while (it.hasNext()) {
String key = it.next();
System.out.println(key);
}
}
}

输出后结果:

连接成功
hello
show

Java 使用 Redis存储系统的更多相关文章

  1. Redis学习笔记(一) ---- Linux系统中部署Redis存储系统

    Redis 一.Redis简介 1.Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合 ...

  2. java操作redis之jedis篇

    首先来简单介绍一下jedis,其实一句话就可以概括的,就是java操作redis的一种api.我们知道redis提供了基本上所有常用编程语言的clients,大家可以到http://redis.io/ ...

  3. Java连接redis的使用演示样例

    Java连接redis的使用演示样例 Redis是开源的key-value存储工具,redis通经常使用来存储结构化的数据,由于redis的key能够包括String.hash.listset和sor ...

  4. 360开源的类Redis存储系统:Pika

    Pika 是 360 DBA 和基础架构组联合开发的类 Redis 存储系统,完全支持 Redis 协议,用户不需要修改任何代码,就可以将服务迁移至 Pika.有维护 Redis 经验的 DBA 维护 ...

  5. Java的redis 操作类-优化通用版本

    java操作redis多节点处理方式;http://blog.itpub.net/29254281/viewspace-1188644/首先maven引入依赖包 <dependency> ...

  6. redis学习心得之三-【java操作redis】

    今天主要是讲讲java对redis的操作,来段代码掩饰下基本操作即可明白. java调用你需要下载jedis.jar包 下载网址:https://github.com/xetorthio/jedis/ ...

  7. java 操作redis

    使用Java操作Redis需要jedis-2.1.0.jar,如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar package com.test; import ja ...

  8. java操作redis redis连接池

    redis作为缓存型数据库,越来越受到大家的欢迎,这里简单介绍一下java如何操作redis. 1.java连接redis java通过需要jedis的jar包获取Jedis连接. jedis-2.8 ...

  9. java 操作 redis

    1.Java 使用 Redis 只需要下载一个jar包即可 地址:http://maven.outofmemory.cn/redis.clients/jedis/2.5.2/ 工程

随机推荐

  1. nDPI-dev分析

    目前在 分为两个层次:其一是应用分析,学会如何使用:其二是原理分析,看懂它如何实现. 1. 打包该数据帧,搜集l3.l4层报头信息 2. 查询链接跟踪(如果已被标识,则直接获取到该数据帧所属协议类型) ...

  2. Qt setstylesheet指定窗口

    #窗口名称{ ...} 在窗口名称前加#号可以指定某个窗口设置stylesheet而不影响子窗口.子控件,可以用于设置边框,不影响子控件产生一样的边框.

  3. Mysql 索引之B+tree

    InnoDB使用的是聚簇索引,将主键组织到一棵B+树中,而行数据就储存在叶子节点上,若使用"where id = 14"这样的条件查找主键,则按照B+树的检索算法即可查找到对应的叶 ...

  4. git1使用步骤初始化拉取修改提交推送

    Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令. 在执行完成 git init  ...

  5. R语言查看栅格值

    有这么一个需求,知道栅格上的坐标,想看看这个坐标上的栅格值是多少.坐标长这个样子 那么这样的坐标下的栅格值该怎么看 cellFromXY(the.stack$t1,c( -1505000,683500 ...

  6. 在阿里云开源镜像站中下载centOS7

    镜像的选择 第一步.下载镜像 阿里云开源镜像站:http://mirrors.aliyun.com/ 选择centos进入 如下图: 如下图:选择centos7 再选择isos(镜像目录) 继续下一步 ...

  7. Linux安装.net core

    1.添加yum源 rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm 2.升级所有包同时 ...

  8. [Windows] 重新安装/卸载桌面版OneDrive / Reinstall/ Uninstall Desktop Version OneDrive

    Deep within the OS is a backup copy of the OneDriver installer. To find it, go to  File Explorer> ...

  9. Postman应用笔记

    Postman应用: 项目组织格式 Collections 集合--项目--根路径文件夹 文件夹 集合下只支持1级文件夹 文件夹 Request --请求 url 认证参数,头信息,体信息(Autho ...

  10. 如何利用redis来进行分布式集群系统的限流设计

    在很多高并发请求的情况下,我们经常需要对系统进行限流,而且需要对应用集群进行全局的限流,那么我们如何类实现呢. 我们可以利用redis的缓存来进行实现,并且结合mysql数据库一起,先来看一个流程图. ...