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 ...
随机推荐
- linux虚拟机局域网网卡配置
1:配置虚拟机 1-1:打开:虚拟机下编辑->虚拟网络编辑器 选择VMnet信息下的桥接模式,在“桥接到”下拉列表里选择自己的网卡. ...
- HDU1222Wolf and Rabbit(GCD思维)
Wolf and Rabbit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- A Simple Math Problem(矩阵快速幂)(寒假闭关第一题,有点曲折啊)
A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- 状压DP小结
看了一个多星期状压DP,总算有点明白,大概可以分为两种:数据是在矩阵中的,数据是线性的,在矩阵中的一般就是排兵布阵这一种的,还有一种线性结构中给定条件让你求最大权值,比如求最大权值路线,TSP问题等, ...
- 解决打开MATLAB时出现“Waring:could not read file classpath.txt”,等问题
估计刚安装好的matlab是不会出现这个问题的,出现问题肯定是在某一次用360或者电脑管家清理垃圾之后才会出现这个问题. 首先声明我的matlab版本是matlab R2014a,下载链接:(额,网盘 ...
- 搭建Maven私服那点事
摘要:本文主要介绍在CentOS7.1下使用nexus3.6.0搭建maven私服,以及maven私服的使用(将自己的Maven项目指定到私服地址.将第三方项目jar上传到私服供其他项目组使用) 一. ...
- 注销/etc/passwd带来的系统登陆不上
今天在修改虚拟机密码上的时候,将/etc/passwd中root所在的哪行注销掉了,想象是注销了,root登陆时应该不要输入密码,结果是系统进度条走到最后的时候 进入不了系统了. 结果去普及了下/et ...
- Ajax comet XMLHttpRequest 异步
function createXHR() { if (typeof XMLHttpRequest != “undefi ned”){ return new XMLHttpRequest(); ...
- 取得 iframe 容器的 URL
检测所在窗口是否为最外层的窗口,若不是则跳脱包含它的框架 if( window !== window.top ) { window.top.location = location; } top ...
- 拓扑排序 HDU - 5695
众所周知,度度熊喜欢各类体育活动. 今天,它终于当上了梦寐以求的体育课老师.第一次课上,它发现一个有趣的事情.在上课之前,所有同学要排成一列, 假设最开始每个人有一个唯一的ID,从1到NN,在排好队之 ...