Redis的简单使用和介绍

package com.jedis.test; import redis.clients.jedis.Jedis; /**
* Created by Administrator on 2017-07-13.
*/
public class JedisDemo1 {
/**
* 单实例测试
*/
public static void main(String[] args) {
//设置IP地址和端口
Jedis jedis=new Jedis("192.168.21.195",6379);
//保存数据
jedis.set("name","lu");
//获取数据
String value=jedis.get("name");
System.out.println("name对应的:"+value);
//释放资源
jedis.close();
}
}
jedis单实例测试
package com.jedis.test; import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig; import java.util.Date; /**
*连接池的方式连接
*/
public class JedisDemo2 {
public static void main(String[] args) {
//获取连接池的配置
JedisPoolConfig config = new JedisPoolConfig();
//设置最大连接数
config.setMaxTotal(30);
//设置最大空闲连接数
config.setMaxIdle(10);
//获得连接池
JedisPool jedisPool=new JedisPool(config,"192.168.21.195",6379);
//获得核心对象
Jedis jedis=null;
try {
//通过连接池获得连接
jedis=jedisPool.getResource();
//设置数据
jedis.set("name","张三");
//获取数据
String value = jedis.get("name");
System.out.println("name对应的value:"+value);
}catch (Exception e){
e.printStackTrace();
}finally {
if (jedis!=null){
jedis.close();
}
if (jedisPool!=null){
jedisPool.close();
}
}
} }
jedis连接池方式连接
redis 127.0.0.1:6379> set company lu
OK
redis 127.0.0.1:6379> get company
"lu"
redis 127.0.0.1:6379> getset company baidu
"lu"
redis 127.0.0.1:6379> get company
"baidu"
redis 127.0.0.1:6379> del company
(integer) 1
redis 127.0.0.1:6379> get company
(nil)
redis 127.0.0.1:6379> incr num
(integer) 1
redis 127.0.0.1:6379> get num
"1"
redis 127.0.0.1:6379> incr num
(integer) 2
redis 127.0.0.1:6379> get num
"2"
redis 127.0.0.1:6379> incr name
(error) ERR value is not an integer or out of range
redis 127.0.0.1:6379> decr num
(integer) 1
redis 127.0.0.1:6379> decr num2
(integer) -1
redis 127.0.0.1:6379> incrby num 5
(integer) 6
redis 127.0.0.1:6379> incrby num3 5
(integer) 5
redis 127.0.0.1:6379> decrby num3 2
(integer) 3
redis 127.0.0.1:6379> append num 5
(integer) 2
redis 127.0.0.1:6379> get num
"65"
redis 127.0.0.1:6379> append num4 4
(integer) 1
redis 127.0.0.1:6379> get num4
"4"
存储String常用命令
13、存储Hash
String Key和String Value的map容器
每一个Hash可以存储4294967295个键值对
储存Hash常用命令:
赋值
取值删除增加数字
自学命令
redis 127.0.0.1:6379> hset myhash username jack
(integer) 1
redis 127.0.0.1:6379> hset myhash age 18
(integer) 1
redis 127.0.0.1:6379> hmset myhash2 username rose age 21
OK
redis 127.0.0.1:6379> hget myhash username
"jack"
redis 127.0.0.1:6379> hget myhash age
"18"
redis 127.0.0.1:6379> hmget myhash username age
1) "jack"
2) "18"
redis 127.0.0.1:6379> hgetall myhash
1) "username"
2) "jack"
3) "age"
4) "18"
redis 127.0.0.1:6379> hdel myhash2 username
(integer) 1
redis 127.0.0.1:6379> hgetall myhash2
1) "age"
2) "21"
redis 127.0.0.1:6379> del myhash2
(integer) 1
redis 127.0.0.1:6379> hgetall myhash2
(empty list or set)
redis 127.0.0.1:6379> hincrby myhash age 5
(integer) 23
redis 127.0.0.1:6379> hexists myhash username
(integer) 1
redis 127.0.0.1:6379> hexists myhash password
(integer) 0
redis 127.0.0.1:6379> hlen myhash
(integer) 2
redis 127.0.0.1:6379> hkeys myhash
1) "username"
2) "age"
redis 127.0.0.1:6379> hvalues myhash
(error) ERR unknown command 'hvalues'
redis 127.0.0.1:6379> hvals myhash
1) "jack"
2) "23"
存储Hash常用命令
14、存储list
ArrayList使用数组方式
LinkedList使用双向链接方式
双向链表中增加数据
双向链表中删除数据
存储list常用命令:
两端添加
两端弹出
扩展命令
查看列表
获取列表元素个数
redis 127.0.0.1:6379> lpush mylist a b c
(integer) 3
redis 127.0.0.1:6379> lpush mylist 1 2 3
(integer) 6
redis 127.0.0.1:6379> rpush mylist2 a b c
(integer) 3
redis 127.0.0.1:6379> rpush mylist2 1 2 3
(integer) 6
redis 127.0.0.1:6379> lrange mylist 0 5
1) "3"
2) "2"
3) "1"
4) "c"
5) "b"
6) "a"
redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "a"
2) "b"
3) "c"
4) "1"
5) "2"
6) "3"
redis 127.0.0.1:6379> lrange mylist2 0 -2
1) "a"
2) "b"
3) "c"
4) "1"
5) "2"
redis 127.0.0.1:6379> lpop mylist
"3"
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "2"
2) "1"
3) "c"
4) "b"
5) "a"
redis 127.0.0.1:6379> rpop mylist
"a"
redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "a"
2) "b"
3) "c"
4) "1"
5) "2"
6) "3"
redis 127.0.0.1:6379> rpop mylist2
"3"
redis 127.0.0.1:6379> rpop mylist2
"2"
redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "a"
2) "b"
3) "c"
4) "1"
redis 127.0.0.1:6379> llen mylist
(integer) 4
redis 127.0.0.1:6379> llen mylist2
(integer) 4
redis 127.0.0.1:6379> llen mylist3
(integer) 0
redis 127.0.0.1:6379> lpushx mylist x
(integer) 5
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "x"
2) "2"
3) "1"
4) "c"
5) "b"
redis 127.0.0.1:6379> lpushx mylist3 x
(integer) 0
redis 127.0.0.1:6379> rpushx mylist2 x
(integer) 5
redis 127.0.0.1:6379> lrange mylist2
(error) ERR wrong number of arguments for 'lrange' command
redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "a"
2) "b"
3) "c"
4) "1"
5) "x"
redis 127.0.0.1:6379> lpush mylist3 1 2 3
(integer) 3
redis 127.0.0.1:6379> lpush mylist3 1 2 3
(integer) 6
redis 127.0.0.1:6379> lpush mylist3 1 2 3
(integer) 9
redis 127.0.0.1:6379> lrange mylist3 0 -1
1) "3"
2) "2"
3) "1"
4) "3"
5) "2"
6) "1"
7) "3"
8) "2"
9) "1"
redis 127.0.0.1:6379> lrem mylist3 2 3
(integer) 2
redis 127.0.0.1:6379> lrange mylist3 0 -1
1) "2"
2) "1"
3) "2"
4) "1"
5) "3"
6) "2"
7) "1"
redis 127.0.0.1:6379> lrem mylist3 -2 1
(integer) 2
redis 127.0.0.1:6379> lrange mylist3 0 -1
1) "2"
2) "1"
3) "2"
4) "3"
5) "2"
redis 127.0.0.1:6379> lrem mylist3 0 2
(integer) 3
redis 127.0.0.1:6379> lrange mylist3 0 -1
1) "1"
2) "3"
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "x"
2) "2"
3) "1"
4) "c"
5) "b"
redis 127.0.0.1:6379> lset mylist 3 mmm
OK
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "x"
2) "2"
3) "1"
4) "mmm"
5) "b"
redis 127.0.0.1:6379> lpush mylist4 a b c
(integer) 3
redis 127.0.0.1:6379> lpush mylist4 a b c
(integer) 6
redis 127.0.0.1:6379> lrange mylist4 0 -1
1) "c"
2) "b"
3) "a"
4) "c"
5) "b"
6) "a"
redis 127.0.0.1:6379> linsert mylist4 before b 11
(integer) 7
redis 127.0.0.1:6379> lrange mylist4 0 -1
1) "c"
2) "11"
3) "b"
4) "a"
5) "c"
6) "b"
7) "a"
redis 127.0.0.1:6379> linsert mylist4 after b 22
(integer) 8
redis 127.0.0.1:6379> lrange mylist4 0 -1
1) "c"
2) "11"
3) "b"
4) "22"
5) "a"
6) "c"
7) "b"
8) "a"
redis 127.0.0.1:6379> lpush mylist5 1 2 3
(integer) 3
redis 127.0.0.1:6379> lpush mylist6 a b c
(integer) 3
redis 127.0.0.1:6379> rpoplpush mylist5 mylist6
"1"
redis 127.0.0.1:6379> lrange mylist5 0 -1
1) "3"
2) "2"
redis 127.0.0.1:6379> lrange mylist6 0 -1
1) "1"
2) "c"
3) "b"
4) "a"
存储list常用命令
15、存储Set
和List类型不同的是,Set集合中不允许出现重复的元素
存储set常用命令:
添加/删除元素
获得集合中的元素
集合中的差集运算
集合中的交集运算
集合中的并集运算
扩展命令
redis 127.0.0.1:6379> sadd myset a b c
(integer) 3
redis 127.0.0.1:6379> sadd myset a
(integer) 0
redis 127.0.0.1:6379> sadd myset 1 2 3
(integer) 3
redis 127.0.0.1:6379> srem myset 1 2
(integer) 2
redis 127.0.0.1:6379> smembers myset
1) "3"
2) "c"
3) "a"
4) "b"
redis 127.0.0.1:6379> sismember myset a
(integer) 1
redis 127.0.0.1:6379> sismember myset 6
(integer) 0
redis 127.0.0.1:6379> saaa mya1 a b c
(error) ERR unknown command 'saaa'
redis 127.0.0.1:6379> sadd mya1 a b c
(integer) 3
redis 127.0.0.1:6379> sadd mya2 a c 1 2
(integer) 4
redis 127.0.0.1:6379> sdiff mya1 mya2
1) "b"
redis 127.0.0.1:6379> sinter mya1 mya2
1) "c"
2) "a"
redis 127.0.0.1:6379> sunion mya1 mya2
1) "1"
2) "a"
3) "b"
4) "c"
5) "2"
redis 127.0.0.1:6379> smembers myset
1) "3"
2) "c"
3) "a"
4) "b"
redis 127.0.0.1:6379> scard myset
(integer) 4
redis 127.0.0.1:6379> srandmember myset
"a"
redis 127.0.0.1:6379> srandmember myset
"a"
redis 127.0.0.1:6379> srandmember myset
"3"
redis 127.0.0.1:6379> sdiffstore my1 mya1 mya2
(integer) 1
redis 127.0.0.1:6379> smembers my1
1) "b"
redis 127.0.0.1:6379> sinterstore my2 mya1 mya2
(integer) 2
redis 127.0.0.1:6379> smembers my2
1) "c"
2) "a"
redis 127.0.0.1:6379> sunionstore my3 mya1 mya2
(integer) 5
redis 127.0.0.1:6379> smembers my3
1) "1"
2) "a"
3) "b"
4) "c"
5) "2"
储存Set常用命令
存储Set使用场景
跟踪一些唯一性数据
用于维护数据对象之间的关联关系
16、存储Sorted-Set
Sorted-Set中的成员在集合中的位置是有序的
存储Sorted-Set常用命令:
添加元素
删除元素
获得元素
范围查询
扩展命令
redis 127.0.0.1:6379> zadd mysort 70 zs 80 ls 90 ww
(integer) 3
redis 127.0.0.1:6379> zadd mysort zs
(error) ERR wrong number of arguments for 'zadd' command
redis 127.0.0.1:6379> zadd mysort 100 zs
(integer) 0
redis 127.0.0.1:6379> zadd mysort 60 tom
(integer) 1
redis 127.0.0.1:6379> zscore mysort zs
"100"
redis 127.0.0.1:6379> zcard mysort
(integer) 4
redis 127.0.0.1:6379> zrem mysort tom ww
(integer) 2
redis 127.0.0.1:6379> zcard mysort
(integer) 2
redis 127.0.0.1:6379> zadd mysort 85 jack 95 rose
(integer) 2
redis 127.0.0.1:6379> zrange mysort 0 -1
1) "ls"
2) "jack"
3) "rose"
4) "zs"
redis 127.0.0.1:6379> zrange mysort 0 -1 withscores
1) "ls"
2) "80"
3) "jack"
4) "85"
5) "rose"
6) "95"
7) "zs"
8) "100"
redis 127.0.0.1:6379> zrevrange mysort 0 -1 withscores
1) "zs"
2) "100"
3) "rose"
4) "95"
5) "jack"
6) "85"
7) "ls"
8) "80"
redis 127.0.0.1:6379> zremrangebyrank mysort 0 4
(integer) 4
redis 127.0.0.1:6379> zrevrange mysort 0 -1 withscores
(empty list or set)
redis 127.0.0.1:6379> zadd mysort 80 zs 90 ls 100 ww
(integer) 3
redis 127.0.0.1:6379> zremrangebyscore mysort 80 100
(integer) 3
redis 127.0.0.1:6379> zrevrange mysort 0 -1 withscores
(empty list or set)
redis 127.0.0.1:6379> zadd mysort 70 zs 80 ls 90 ww
(integer) 3
redis 127.0.0.1:6379> zrangebyscore mysort 0 100
1) "zs"
2) "ls"
3) "ww"
redis 127.0.0.1:6379> zrangebyscore mysort 0 100 withscore
(error) ERR syntax error
redis 127.0.0.1:6379> zrangebyscore mysort 0 100 withscores
1) "zs"
2) "70"
3) "ls"
4) "80"
5) "ww"
6) "90"
redis 127.0.0.1:6379> byscore mysort 0 100 withscores limit 0 2
1) "zs"
2) "70"
3) "ls"
4) "80"
redis 127.0.0.1:6379> zincrby mysort 3 ls
"83"
redis 127.0.0.1:6379> zscore mysort ls
"83"
redis 127.0.0.1:6379> zcount mysort 80 90
(integer) 2
Sorted-Set常用命令
Sorted-Set使用场景
大型在线游戏积分排行榜
构建索引数据
17、Redis特性
切换数据库
select 0
移动key到某一个数据库
move key 1
开启事务
multi
提交事务
exec
回滚事务
discard
18、Redis持久化
持久化方式:
RDB方式(配置以多少秒将数据储存到硬盘)
AOF方式(读取日志文件)
无持久化(缓存方式)
同时使用RDB和AOF
Redis的简单使用和介绍的更多相关文章
- Redis主从复制简单介绍
由于本地环境的使用,所以搭建一个本地的Redis集群,本篇讲解Redis主从复制集群的搭建,使用的平台是Windows,搭建的思路和Linux上基本一致! (精读阅读本篇可能花费您15分钟,略读需5分 ...
- redis 的简单命令
以下实例讲解了如何启动 redis 客户端: 启动 redis 客户端,打开终端并输入命令 redis-cli.该命令会连接本地的 redis 服务. $redis-cli redis > re ...
- python内置函数的简单使用和介绍
"""内置函数的简单使用和介绍参考链接:https://docs.python.org/3/library/functions.html ""&quo ...
- Redis的简单了解以及主从复制
1.Redis的简单了解 Redis是一种高性能的分布式NoSql数据库,持久存储,高并发,数据类型丰富,通过现场申请内存空间,同时可以配置虚拟内存.五种数据类型:string(字符串,这种格式和me ...
- Redis 的简单运算
Redis 的简单运算 命令 说明 备注 incr key 在原字段上加 1 只能对整数操作 incrby key increment 在原字段上加上整数 (increment) 只能对整数操作 de ...
- 5.如何保证 redis 的高并发和高可用?redis 的主从复制原理能介绍一下么?redis 的哨兵原理能介绍一下么?
作者:中华石杉 面试题 如何保证 redis 的高并发和高可用?redis 的主从复制原理能介绍一下么?redis 的哨兵原理能介绍一下么? 面试官心理分析 其实问这个问题,主要是考考你,redis ...
- python redis 实现简单的消息订阅
python + redis 实现简单的消息订阅 订阅端 import redis from functools import wraps class Subscribe: def __init__( ...
- redis事务及相关命令介绍
redis事务及相关命令介绍 一.概述:和众多其它数据库一样,Redis作为NoSQL数据库也同样提供了事务机制.在Redis中,MULTI/EXEC/DISCARD/WATCH这四个命令是我们实现事 ...
- Redis的简单介绍及在Windows下环境搭建
简单介绍 1,Redis是什么 最直接的还是看官方的定义吧. Redis is an open source (BSD licensed), in-memory data structure stor ...
随机推荐
- 使用(Unicode字符)让inline水平元素换行
为了实现上面效果: <dl> <dt>提问:</dt><dd>为什么没有男朋友?</dd> </dl> <dl ...
- Python爬虫入门:综述
大家好哈,最近博主在学习Python,学习期间也遇到一些问题,获得了一些经验,在此将自己的学习系统地整理下来,如果大家有兴趣学习爬虫的话,可以将这些文章作为参考,也欢迎大家一共分享学习经验. Pyth ...
- 如何让只支持IE浏览器的jsp转为可以支持chrome
如果你的项目只能使用IE浏览器打开,你想让其支持chrome的话,可以试一下下面的代码哦: function showLayerDialog(url,paramFuction){ top.layer. ...
- ASP.NET没有魔法——ASP.NET Identity与授权
一个完整的ASP.NET的请求中会存在身份验证(Authentication)阶段以及授权(Authorization)阶段,英文单词Authentication和Authorization非常相似, ...
- C# 4.0 新特性dynamic、可选参数、命名参数等
1.dynamic ExpandoObject熟悉js的朋友都知道js可以这么写 : 1 var t = new Object(); 2 t.Abc = ‘something’; 3 t.Valu ...
- JDBC之代码优化
上一次我们是先实现了JDBC对数据库的增删查改操作,然后在增加新信息过程中发现了新的问题,即当某一操作失败,为了维护数据库的一致性,我们需要回滚事务.在其中我们了解了事务的工作原理及相关代码的使用. ...
- [转载] ZooKeeper的Java客户端API
转载自 http://www.cnblogs.com/ggjucheng/p/3370359.html http://zookeeper.apache.org/doc/trunk/javaExampl ...
- C语 三子棋小游戏
#include <stdio.h> #include <Windows.h> #include<time.h> #define row 3 #define lis ...
- API设计相关
来自HeroKu的HTTP API 设计指南 http://get.jobdeer.com/343.get https://github.com/interagent/http-api-design ...
- 【玩转树莓派】使用 sinopia 搭建私有 npm 服务器
简介 使用 sinopia 的好处是,node系的工程师,内部协作时,使用自有 npm 包,会非常方便:另外,sinopia,会缓存已经下载过的包,可以在相当程度上,加速 npm install 相关 ...