一、redis安装

1.安装redis
  将redis安装包放到指定目录下。并用tar -zxvf redis.*****.tar.gz解压
2.想把redis安装到哪里,就在哪里创建redis文件夹。
  如 mkdir /home/chx/allSoftCert/redis
2.进入解压后的目录内,如redis4.0.0
3.cd src
4.sudo make install PREFIX=/home/chx/allSoftCert/redis
5.cp ../redis.conf /home/allSoft/redis/
6.运行测试:./home/chx/allSoftCert/redis/bin/redis-server /home/chx/allSoftCert/redis/redis.conf
  错误:如果发生make[1]: Entering directory错误,则执行make distclean后再次安装
7.开启远程的端口
  ptables -I INPUT -p tcp --dport 6379 -j ACCEPT
  iptables save
8.修改密码
  vi /home/chx/allSoftCert/redis/redis.conf

注释bind 127.0.0.1
修改 daemonize no 为 daemonize yes
解注释 requirepass foobared 并修改为 requirepass 123456

9.接下里就可以进行java测试了

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class MainJedis {

private static final String REDIS_IP = "192.168.0.156";
private static final String REDIS_AUTH = "123456";
private static final int MAX_TOTAL = 100;//最大连接数
private static final int MAX_ID_LE = 10;//最大空闲数
private static final int REDIS_DUAN_KOU = 6379;

public static void main(String[] args) {

JedisPoolConfig config = new JedisPoolConfig();

config.setMaxTotal(MAX_TOTAL);//设置最大连接数

config.setMaxIdle(MAX_ID_LE);//设置最大空闲数

JedisPool pool = null;

Jedis jedis =null;

try {

pool = new JedisPool(config,REDIS_IP,REDIS_DUAN_KOU);

jedis = new Jedis(REDIS_IP,6379);

jedis.auth(REDIS_AUTH);

jedis.set("chx", "boy");

System.out.println(jedis.get("chx"));

}catch (Exception e) {

e.printStackTrace();

}finally {

if(jedis!=null) {

jedis.close();

}
if(pool!=null) {

pool.close();

}

}

}

}

pom.xml对应如下:

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>JedisTest</groupId>
<artifactId>firstJedis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>firstJedis</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
</dependencies>
</project>

二、JAVA中使用redis

1.java对象存储在redis内。

两种方式:

(1).序列化和反序列化。

(2).转换为json存储。

2.redis的几种数据结构

String: 字符串

Hash: 散列

List: 列表

Set: 集合

Sorted Set: 有序集合

3.Jedis基础命令

jedis.del("key","key2");//删除key

jedis.auth(REDIS_AUTH);//操作密码

jedis.set("chx", "boy");//放入普通的key-value

jedis.exists("chx");//判断是否存在某个key

System.out.println("系统中所有键如下:");

//查询系统所有key值

Set<String> keys = jedis.keys("*");

Iterator<String> it=keys.iterator();

while(it.hasNext()){

  System.out.println(it.next());

}

//设置key值的储存时间,单位秒

jedis.expire("chx", 2);

//获取key的存储时间,永久生存或者不存在的都返回-1

jedis.ttl("chx");

//移除key的生存时间

jedis.ttl("chx");

jedis.type("chx"));//查看key所储存的值的类

jedis.rename("old", "new");//修改key值

jedis.mset("chx2", "value2", "chx3", "value3");//一次性增加多个key-value

List<String> mget = jedis.mget("chx","chx1","chx2","chx3");//一次性获取多个value

jedis.setnx("chx", "change");//放入key-value时防止覆盖旧值的方法

jedis.flushDB();//清空DB所有数据

Jedis 列表(List):

jedis.rpush("myList", "1","2","3","a");//从右边添加,即尾插入

jedis.lrange("myList", 0, -1);//从左边获取

jedis.lrem("myList", 2, "1");//从左侧删除2个值为1的数据

Jedis集合Set

System.out.println("清空库中所有数据:" + jedis.flushDB());

jedis.sadd("mySet", "1","2","3");

System.out.println(jedis.smembers("mySet"));

Jedis hash

System.out.println("清空库中所有数据:" + jedis.flushDB());

jedis.hset("myHash", "name", "chx");

Map<String, String> users = new HashMap<String, String>();

users.put("age", "18");

jedis.hmset("myHash", users)

System.out.println(jedis.hgetAll("myHash"));

  4.切片和非切片连接池的概念

    JedisPool连一台Redis,ShardedJedisPool连Redis集群,通过一致性哈希算法决定把数据存到哪台上。

5.redis有密码的情况下关闭redis-server服务

  ./redis-cli -a 123456 shutdown

三、分布式情况下存储用户状态

当单台机器不能满足性能提升时,大多采用分布式,但是session是基于cookie进行获取的,导致不同机器的jsessionid会不同,而导致用户访问不同机器时会重新登入。

所以一般用redis等内存存储的数据库进行session存储。原理是将sessionid为key值,用户信息为value进行存储。每次访问先去redis获取用户信息,没有说明是非法登入。同时redis可以设置数据的过期时间,由此可以基本实现原session功能。

linux redis安装及JAVA使用jedis的更多相关文章

  1. Redis安装以及Java客户端jedis连接不上相关问题解决

    安装步骤 1.由于Redis是由C 语言编写的 所以虚拟机编译需要C的编译环境 用命令 yum install gcc-c++ 2.用SFTP上传Redis安装包并解压 3.进入Redis源码目录 b ...

  2. Linux Redis安装,Linux如何安装Redis,Linux Redis自动启动,Redis开机启动

    Linux Redis安装,Linux如何安装Redis,Linux Redis自动启动,Redis开机启动 >>>>>>>>>>>& ...

  3. Linux Redis 安装(带视频)

    疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 疯狂创客圈 高并 ...

  4. Redis入门和Java利用jedis操作redis

    Redis入门和Java利用jedis操作redis Redis介绍 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - val ...

  5. Windows Redis安装,Java操作Redis

    一.Redis 的安装 1.Redis 下载 Windows 版本下载:https://github.com/dmajkic/redis/downloads 2.解压到 C:\redis-2.4.5- ...

  6. linux redis 安装

    linux下redis安装   我用的系统是:redhat [root@infa ~]# wget http://download.redis.io/releases/redis-2.8.12.tar ...

  7. linux redis安装

    redis官网地址:http://www.redis.io/ 在Linux下安装Redis非常简单,具体步骤如下(官网有说明): 1.下载源码,解压缩后编译源码. $ wget http://down ...

  8. linux +redis 安装 +mongo 安装

    Linux 下redis安装 本教程使用的最新文档版本为 2.8.17,下载并安装: $ wget http://download.redis.io/releases/redis-2.8.17.tar ...

  9. Linux一键安装PHP/JAVA环境OneinStack

    OneinStack 是一款PHP/JAVA环境一键配置工具.                         OneinStack包含以下组合   lnmp(Linux + Nginx+ MySQL ...

随机推荐

  1. python_ 模块 json pickle shelve

    一,什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的代码( ...

  2. loj6626 幼儿园唱歌题

    题目 不难想到把\(S\)的反串\(S^R\)接到\(S\)后面,这样就可以把\(S[l_1,r_1]\)的前缀转化为\(S^R[n-r_1+1,n-l_1+1]\)的后缀 回文树上两节点的lca就是 ...

  3. CF986C

    CF986C 给\(A_i\)连一条向补集的边和子集的边,然后dfs求联通块数 #include<iostream> #include<cstring> #include< ...

  4. 标准模板库(STL)学习探究之Multimap容器

    C++ Multimaps和maps很相似,但是MultiMaps允许重复的元素.(具体用法请参考map容器)     函数列表:     begin() 返回指向第一个元素的迭代器      cle ...

  5. goland 实用键

    代码补全 option + command + v

  6. JS浏览器事件循环机制

    文章来自我的 github 博客,包括技术输出和学习笔记,欢迎star. 先来明白些概念性内容. 进程.线程 进程是系统分配的独立资源,是 CPU 资源分配的基本单位,进程是由一个或者多个线程组成的. ...

  7. SQLServer存储过程学习记录

    简单来说,存储过程就是一条或者多条sql语句的集合,可视为批处理文件,但是其作用不仅限于批处理. 一.存储过程的概述 SQL Server中的存储过程是使用T_SQL编写的代码段.它的目的在于能够方便 ...

  8. Android多线程:深入分析 Handler机制源码(二)

    前言 在Android开发的多线程应用场景中,Handler机制十分常用 接下来,深入分析 Handler机制的源码,希望加深理解 目录 1. Handler 机制简介 定义一套 Android 消息 ...

  9. 笔记66 Spring Boot快速入门(六)

    SpringBoot中使用Mybatis 一.注解方式 1.创建映射文件CategoryMapper.java 使用注解@Mapper 表示这是一个Mybatis Mapper接口.使用@Select ...

  10. hdu 5791 思维dp

    题目描述: 求序列A,B的公共子序列个数: 基本思路: 想到了dp,选的状态也对,但是就是就是写不出状态转移方程,然后他们都出了,到最后我还是没出,很难受,然后主要是没有仔细考虑dp[i][j],dp ...