####下载
```bash
wget http://download.redis.io/releases/redis-4.0.9.tar.gz
```
####解压移动
tar -xvf redis-4.0.9.tar.gz
mv redis-4.0.9/ /usr/local/
####编译测试
sudo make test
####启动服务
redis-server
redis-server &
####停止
redis-cli shutdown
####查看版本
redis-server -v
####查看redis运行状态
ps aux|grep redis
lsof -i tcp:6379


####登录redis
cd /usr/local/redis-4.0.9
redis-cli -h 127.0.0.1 -p 6379
####退出连接
quit
####服务器的信息和统计
info
####测试服务器是否存活
ping
####设置key
set foo bar
####取值
get foo
####判断某个key是否存在
exists foo
####删除key
del foo
####key类型
type foo


####加载源
```java

redis.clients
jedis
2.8.2

```

示例

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; import java.util.List;
import java.util.Set;
import java.util.Iterator;
import redis.clients.jedis.Jedis; @Controller
public class RedisController {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("localhost");
System.out.println("连接成功");
//查看服务是否运行
System.out.println("服务正在运行: " + jedis.ping());
// 清空数据
System.out.println("清空库中所有数据:" + jedis.flushDB()); //key-value
System.out.println("============================================");
jedis.set("a", "day1"); // 存数据
System.out.println("a的value为" + jedis.get("a")); // 取数据
jedis.append("a", "-day2");
System.out.println("追加后a的value为" + jedis.get("a")); // 输出系统中所有的key
System.out.println("所有的redis-key为:");
Set<String> keys = jedis.keys("*");
Iterator<String> it=keys.iterator();
while(it.hasNext()){
String key = it.next();
System.out.println(key);
} //判断key是否存在,存在则删除
if(jedis.exists("a")){
jedis.del("a");
System.out.println("key为a的值存在已删除");
}else{
System.out.println("key为a的值不存在");
} //list,l对应左边队头,r对应右边队尾
System.out.println("============================================");
jedis.del("list1");
//lpush是在队列头部插入元素,rpush是在尾部插入元素
jedis.lpush("list1", "day1");
jedis.lpush("list1", "day2");
jedis.lpush("list1", "day3");
jedis.lpush("list1", "day4");
System.out.println("list:" + jedis.lrange("list1", 0, -1));
System.out.println("list长度为:" + jedis.llen("list1")); List<String> list = jedis.lrange("list1", 0 ,-1);
for(int i=0; i<list.size();i++){
System.out.println("列表为:" + list.get(i));
}
//删除指定的值
jedis.lrem("list1", 2, "day2");
System.out.println("删除后:" + jedis.lrange("list1", 0, -1));
//lpop是在队列头部移除元素,rpop是在尾部移除元素
jedis.lpop("list1");
System.out.println("lpop队头移除元素后" + jedis.lrange("list1", 0, -1));
jedis.rpop("list1");
System.out.println("rpop从队尾移除元素后" + jedis.lrange("list1", 0, -1)); //set集合(无序)
System.out.println("============================================");
jedis.del("dayset");
jedis.sadd("dayset", "day1");
jedis.sadd("dayset", "day2");
jedis.sadd("dayset", "day3");
System.out.println("dayset无序集合中的全部元素" + jedis.smembers("dayset"));
Set<String> set = jedis.smembers("dayset");
Iterator<String> itset = set.iterator();
while(itset.hasNext()){
Object obj = itset.next();
System.out.println(obj);
} //zset有序集合
System.out.println("============================================");
jedis.zadd("zsetday" , 3 , "day1");
jedis.zadd("zsetday" , 2 , "day2");
jedis.zadd("zsetday" , 1 , "day3");
System.out.println("有序集合中的所有元素为:" + jedis.zrange("zsetday", 0, -1));
System.out.println("有序集合中的元素个数为:" + jedis.zcard("zsetday"));
System.out.println("day3的权重为:" + jedis.zscore("zsetday", "day3")); //hash
System.out.println("============================================");
jedis.hset("hashday", "day1", "111");
jedis.hset("hashday", "day2", "222");
jedis.hset("hashday", "day3", "333");
System.out.println("hash中所有的key为" + jedis.hkeys("hashday"));
System.out.println("hash中所有的value为:" + jedis.hvals("hashday"));
jedis.hdel("hashday", "day2");
System.out.println("删除day2后所有的value为:" + jedis.hvals("hashday"));
System.out.println("删除day2后key为day2是否存在:" + jedis.hexists("hashday", "day2"));
System.out.println("key为day3的value为:" + jedis.hget("hashday", "day3")); }
}

输出

连接成功
服务正在运行: PONG
清空库中所有数据:OK
============================================
a的value为day1
追加后a的value为day1-day2
所有的redis-key为:
a
key为a的值存在已删除
============================================
list:[day4, day3, day2, day1]
list长度为:4
列表为:day4
列表为:day3
列表为:day2
列表为:day1
删除后:[day4, day3, day1]
lpop队头移除元素后[day3, day1]
rpop从队尾移除元素后[day3]
============================================
dayset无序集合中的全部元素[day2, day1, day3]
day2
day1
day3
============================================
有序集合中的所有元素为:[day3, day2, day1]
有序集合中的元素个数为:3
day3的权重为:1.0
============================================
hash中所有的key为[day2, day3, day1]
hash中所有的value为:[111, 222, 333]
删除day2后所有的value为:[111, 333]
删除day2后key为day2是否存在:false
key为day3的value为:333

redis环境搭建和java应用的更多相关文章

  1. Redis环境搭建和代码测试及与GIS结合的GEO数据类型预研

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 1.1传统MySQL+ Memcached架构遇到的问题 My ...

  2. redis环境搭建及一主二从三哨兵模式配置

    一.单机redis环境搭建 1.安装: OS:linux redhat6.5 下载redis 官网下载链接:https://redis.io/download 把安装包上传到服务器,进行解压 [roo ...

  3. Redis环境搭建(Linux)

    1.简介       redis是一个开源的key-value数据库.它又经常被认为是一个数据结构服务器.因为它的value不仅包括基本的string类型还有 list,set ,sorted set ...

  4. 一.redis 环境搭建

    1.简介       redis是一个开源的key-value数据库.它又经常被认为是一个数据结构服务器.因为它的value不仅包括基本的string类型还有 list,set ,sorted set ...

  5. nginx + lua +redis环境搭建

    环境搭建,其实主要是lua的环境,这个环境够麻烦的,在网上找了很多前辈的文章,终于完成了 ,安装redis wget http://download.redis.io/releases/redis-3 ...

  6. django+celery+redis环境搭建

    初次尝试搭建django+celery+redis环境,记录下来,慢慢学习~ 1.安装apache 下载httpd-2.0.63.tar.gz,解压tar zxvf httpd-2.0.63.tar. ...

  7. Appium 1.6.4 环境搭建流程(Java, Android+IOS, Windows+Mac)

    Appium1.6.4已经出来一段时间了,快速给大家串一下怎么搭建,贴了下载链接 1 基础环境: Windows + Mac: Java JDK 1.8+ (需配置环境变量),Appium1.6.4的 ...

  8. Redis环境搭建(MacOS)

    Redis是一个开源的key-value类型的存储系统,大部分数据存在于内存中,所有读写速度十分快.其支持的存储value数据类型有多种,如:strings.hashes.lists.sets.sor ...

  9. Redis环境搭建

    一.准备的安装包 windows虚拟机软件:VMware Workstation Pro 12 linux安装文件:CentOS-7-x86_64-Minimal-1511.iso 远程登录软件:pu ...

随机推荐

  1. Log-structured File Systems

    换到博客园排版有问题,原版在这里:http://xubenbenhit.github.io/LogStructureFileSystem.html Log-structured File System ...

  2. NSPredicate--谓词(is)

    技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong NSPredicate 技术博客http:// ...

  3. node的简单爬虫

    最近在学node,这里简单记录一下. 首先是在linux的环境下,关于node的安装教程:   https://github.com/alsotang/node-lessons/tree/master ...

  4. 读书笔记 ~ Nmap渗透测试指南

    记录Nmap选项及脚本使用,仅供参考... 除了端口扫描,好像其它脚本都比较鸡肋,用途感觉应该没有专用的小工具好用,不过还是可以看看,选项和脚本还是相当的丰富的. Nmap 使用帮助 starnigh ...

  5. HDU 1711 Number Sequence (字符串处理 KMP)

    题目链接 Problem Description Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...

  6. three.js_ "Failed to execute 'texImage2D' on 'WebGLRenderingContext': tainted canvases may not be loded."

    这个报错是请求图片跨域了. 1.当我们使用thee.js的时候肯定会碰到利用各种请求去向服务器请求贴图. 2.假设我们获取的是图片在服务器上的路径然后我们用 加载贴图到这里都是没有问题当我们在贴图加载 ...

  7. jQuery()方法的第二个参数详解

    关于jQuery()方法的第二个参数,有下面这几种用法: 1.jQuery(selector, [context]) 这种用法,相当于 $(context).find(selector) 或者 con ...

  8. Vmware安装ubuntu详细教程

    1.环境准备: (1) 范例系统为WIN10 64位家庭普通版,已正确安装虚拟机VMware Workstation 12 Pro.(2) 下载Ubuntu系统. 2.安装过程: 2.1 VMware ...

  9. Java多线程学习(七)并发编程中一些问题

    本节思维导图: 关注微信公众号:"Java面试通关手册" 回复"Java多线程"获取思维导图源文件和思维导图软件. 多线程就一定好吗?快吗?? 并发编程的目的就 ...

  10. openjudge-NOI 2.6-2988 计算字符串距离

    题目链接:http://noi.openjudge.cn/ch0206/2988/ 题解: 首先,题目有误,少了一个添加操作 和求解LCS之类的思路类似 f[i][j]表示a序列中1..i的部分和b序 ...