linux redis安装及JAVA使用jedis
一、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的更多相关文章
- Redis安装以及Java客户端jedis连接不上相关问题解决
安装步骤 1.由于Redis是由C 语言编写的 所以虚拟机编译需要C的编译环境 用命令 yum install gcc-c++ 2.用SFTP上传Redis安装包并解压 3.进入Redis源码目录 b ...
- Linux Redis安装,Linux如何安装Redis,Linux Redis自动启动,Redis开机启动
Linux Redis安装,Linux如何安装Redis,Linux Redis自动启动,Redis开机启动 >>>>>>>>>>>& ...
- Linux Redis 安装(带视频)
疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 疯狂创客圈 高并 ...
- Redis入门和Java利用jedis操作redis
Redis入门和Java利用jedis操作redis Redis介绍 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - val ...
- Windows Redis安装,Java操作Redis
一.Redis 的安装 1.Redis 下载 Windows 版本下载:https://github.com/dmajkic/redis/downloads 2.解压到 C:\redis-2.4.5- ...
- linux redis 安装
linux下redis安装 我用的系统是:redhat [root@infa ~]# wget http://download.redis.io/releases/redis-2.8.12.tar ...
- linux redis安装
redis官网地址:http://www.redis.io/ 在Linux下安装Redis非常简单,具体步骤如下(官网有说明): 1.下载源码,解压缩后编译源码. $ wget http://down ...
- linux +redis 安装 +mongo 安装
Linux 下redis安装 本教程使用的最新文档版本为 2.8.17,下载并安装: $ wget http://download.redis.io/releases/redis-2.8.17.tar ...
- Linux一键安装PHP/JAVA环境OneinStack
OneinStack 是一款PHP/JAVA环境一键配置工具. OneinStack包含以下组合 lnmp(Linux + Nginx+ MySQL ...
随机推荐
- ORA-01000 error
ORA-01000是最大开放游标错误,是Oracle数据库开发中极为常见的错误. 在Java的上下文中,当应用程序尝试打开更多ResultSet而不是数据库实例上的已配置游标时,会发生这种情况. 解决 ...
- POJ-2888 Magic Bracelet(Burnside引理+矩阵优化+欧拉函数+逆元)
Burnside引理经典好题呀! 题解参考 https://blog.csdn.net/maxwei_wzj/article/details/73024349#commentBox 这位大佬的. 这题 ...
- 【Luogu】【关卡2-16】线性动态规划(2017年10月)【还差三道题】
任务说明:这也是基础的动态规划.是在线性结构上面的动态规划,一定要掌握. P1020 导弹拦截 导弹拦截 P1091 合唱队形 老师给同学们排合唱队形.N位同学站成一排,音乐老师要请其中的(N-K)位 ...
- rest framework之限流组件
一.自定义限流 限流组件又叫做频率组件,用于控制客户端可以对API进行的请求频率,比如说1分钟访问3次,如果在1分钟内超过3次就对客户端进行限制. 1.自定义限流 假设现在对一个API访问,在30s内 ...
- informix 计算 日期之差
原文地址:http://blog.chinaunix.net/uid-678894-id-3138829.html https://blog.csdn.net/zhengqiqiqinqin/arti ...
- python 数据的存储
数据的存储 思考:为什么使用计算机?存储数据,计算数据 思考:数据存在哪里?数据存储在内存里 思考:数据怎么在内存里存储的?首先弄明白怎么存储数字 1010.5“sunck is a good man ...
- python基础和编程库
Python编程从入门到实践-------基础入门 1.Python中的变量 2.Python首字母大写使用title()方法,全部大写upper()方法,全部小写lower()方法 3.Python ...
- rails问题检查
在做rails postgresql过程中,使用同事的老代码,然后坐到db:migrate时发现总是报错 这种错误是无法在百度或者google搞定的,需要去进入到底层查看 所以需要进入相关文件看,到d ...
- 微信支付完成 vue 页面不跳转问题
遇到的问题是 vue 调用微信支付 回调成功以后,页面路由不跳转. 解决的办法是用window.location.href /** * @method 支付费用方法 * @param data:后台返 ...
- java 简单 SocketPool
package org.rx.socks; import lombok.extern.slf4j.Slf4j; import org.rx.common.LogWriter; import org.r ...