抽取的工具类,抽取的工具类

一、在java中使用redis

一、在java中使用redis

 公司里用的最多的是Jedis,Jedis:只是java操作Redis的客户端,也正是jdbc;

 公司里用的最多的是Jedis,Jedis:只是java操作Redis的客户端,也就是jdbc;

 依赖jar:Commons-pool2-2.3.jar
、jedis-2.7.0.jar

 依赖jar:Commons-pool2-2.3.jar
、jedis-2.7.0.jar

 示例:

 示例:

import org.junit.Test;
import redis.clients.jedis.Jedis;

public class JedisUtilsTest {
    @Test
    public void test(){
            Jedis jedis = JedisUtils.getJedis();
            jedis.set("akey","aaa");
            System.out.println(jedis.get("akey"));
            //释放资源
            jedis.close();
        }
}    
import org.junit.Test;
import redis.clients.jedis.Jedis;

public class JedisUtilsTest {
    @Test
    public void test(){
            Jedis jedis = JedisUtils.getJedis();
            jedis.set("akey","aaa");
            System.out.println(jedis.get("akey"));
            //释放资源
            jedis.close();
        }
}    

抽取的工具类:

抽取的工具类:

 1 import redis.clients.jedis.Jedis;
 2 import redis.clients.jedis.JedisPool;
 3 import redis.clients.jedis.JedisPoolConfig;
 4 
 5 //目的: 1.保证池子只有一个 2. 获得jedis对象
 6 public class JedisUtils {
 7 
 8     private static JedisPoolConfig poolConfig ;
 9     private static JedisPool jedisPool;
10 
11     //java机制,当前类一加载,静态代码块就会加载, 只加载一次
12     static {
13         // 0 创建池子配置对象
14         poolConfig = new JedisPoolConfig();
15         poolConfig.setMaxTotal(10);// 设置最大连接数量(可以不配...)
16 
17         String host = "localhost";
18         int port = 6379;
19         // 1. 创建Jedis池子对象
20         jedisPool = new JedisPool(poolConfig, host, port);
21 
22     }
23 
24     //私有构造
25     private JedisUtils() {
26     }
27 
28     public static Jedis getJedis() {
29         // 2. 从池子里面获得jedis
30         Jedis jedis = jedisPool.getResource();
31         return jedis;
32     }
33 }
 1 import redis.clients.jedis.Jedis;
 2 import redis.clients.jedis.JedisPool;
 3 import redis.clients.jedis.JedisPoolConfig;
 4 
 5 //目的: 1.保证池子只有一个 2. 获得jedis对象
 6 public class JedisUtils {
 7 
 8     private static JedisPoolConfig poolConfig ;
 9     private static JedisPool jedisPool;
10 
11     //java机制,当前类一加载,静态代码块就会加载, 只加载一次
12     static {
13         // 0 创建池子配置对象
14         poolConfig = new JedisPoolConfig();
15         poolConfig.setMaxTotal(10);// 设置最大连接数量(可以不配...)
16 
17         String host = "localhost";
18         int port = 6379;
19         // 1. 创建Jedis池子对象
20         jedisPool = new JedisPool(poolConfig, host, port);
21 
22     }
23 
24     //私有构造
25     private JedisUtils() {
26     }
27 
28     public static Jedis getJedis() {
29         // 2. 从池子里面获得jedis
30         Jedis jedis = jedisPool.getResource();
31         return jedis;
32     }
33 }

贰、redis中数据结构

  • redis中蕴藏的多寡是以key-value的款型存在的.个中value帮忙五种数据类型
    • ​ 字符串(String)
    • ​ 哈希(hash)
    • ​ 字符串列表(list)
    • ​ 字符串集合(set)

    • 有序的字符串集合(sorted-set只怕叫zset)

  • key不要太长(不能>十二十五个字节),
  • 也毫无太短 . 可读性差.

  • key在项目里面最佳统壹写法,
    key的常用的写法:
项目名子模块key名称; eg:  store_user_username; 

二、redis中数据结构

  • redis中蕴藏的多少是以key-value的款式存在的.在那之中value援救5种数据类型
    • ​ 字符串(String)
    • ​ 哈希(hash)
    • ​ 字符串列表(list)
    • ​ 字符串集合(set)

    • 有序的字符串集合(sorted-set恐怕叫zset)

  • key不要太长(无法>10贰5个字节),
  • 也决不太短 . 可读性差.

  • key在品种里面最佳统一写法,
    key的常用的写法:
项目名子模块key名称; eg:  store_user_username; 

三、存款和储蓄字符串

3、存储字符串

1.概述


string是redis最基本的档次,用的也是最多的,贰个key对应八个value。
二个键最大能储存512MB。

1.概述


string是redis最核心的门类,用的也是最多的,二个key对应1个value。
1个键最大能积存51二MB。

2.左近命令

命令 描述
set key value 设置指定 key 的值
get key 获取指定 key 的值
incr key 将 key 中储存的数字值增一
decr key 将 key 中储存的数字值减一
getset key value 先获取,再设置
incrby key count 将key 中储存的数字值增加指定数量
decrby key count 将key 中储存的数字值减少指定数量
append key value 如果 key 已经存在并且是一个字符串,将 value 追加到 key 原来的值的末尾;若无,则设置一个
del key 删除key

2.科学普及命令

命令 描述
set key value 设置指定 key 的值
get key 获取指定 key 的值
incr key 将 key 中储存的数字值增一
decr key 将 key 中储存的数字值减一
getset key value 先获取,再设置
incrby key count 将key 中储存的数字值增加指定数量
decrby key count 将key 中储存的数字值减少指定数量
append key value 如果 key 已经存在并且是一个字符串,将 value 追加到 key 原来的值的末尾;若无,则设置一个
del key 删除key

四、存储hash

四、存储hash

1.概述

​ Redis中hash 是一个键值对聚集

​ Redis
hash是二个string类型的田野同志和value的映射表,hash尤其吻合用来存款和储蓄对象。

​ Redis存款和储蓄hash可以当做是String key
和String value的map容器. 也正是说把值作为map集合.

  • Eg:

        KEY             Value
        user1       username    tom   
                    age         18
        user2       username    jack
                    sex         man
    

1.概述

​ Redis中hash 是一个键值对聚集

​ Redis
hash是二个string类型的田野同志和value的映射表,hash尤其适合用于存款和储蓄对象。

​ Redis存款和储蓄hash可以当作是String key
和String value的map容器. 也正是说把值作为map集合.

  • Eg:

        KEY             Value
        user1       username    tom   
                    age         18
        user2       username    jack
                    sex         man
    

贰.常见命令

命令 命令描述
hset key filed value 将哈希表 key 中的字段 field 的值设为 value
hmset key field1 value1 [field2 value2]… 同时将多个 field-value (字段-值)对设置到哈希表 key 中
hget key filed 获取存储在哈希表中指定字段的值
hmget key filed1 filed2 获取多个给定字段的值
hgetall key 获取在哈希表中指定 key 的所有字段和值
hdel key filed1 [filed2] 删除一个或多个哈希表字段
del key 删除整个hash(对象)s
hlen key 获取哈希表中字段的数量
hincrby key filed count 为哈希表 key 中的指定字段的浮点数值加上增量 count。
hkeys key 获取所有哈希表中的字段
hvals key 获得所有的value
HEXISTS key field 查看哈希表 key 中,指定的字段是否存在。
  • 设置

    hset key field value :设置一个键值对
    hmset key field1 value1 field2 value2 ... :设置多个键值对
    
  • 获取

    hget key filed:获取存储在哈希表中指定字段的值
    hmget key filed1 filed2...:获取多个给定字段的值
    hgetall key:获取在哈希表中指定 key 的所有字段和值(了解)
    
  • 删除

    hdel key filed1 filed2 ...: 删除指定的字段
    hdel key:删除整个hash
    

二.大规模命令

命令 命令描述
hset key filed value 将哈希表 key 中的字段 field 的值设为 value
hmset key field1 value1 [field2 value2]… 同时将多个 field-value (字段-值)对设置到哈希表 key 中
hget key filed 获取存储在哈希表中指定字段的值
hmget key filed1 filed2 获取多个给定字段的值
hgetall key 获取在哈希表中指定 key 的所有字段和值
hdel key filed1 [filed2] 删除一个或多个哈希表字段
del key 删除整个hash(对象)s
hlen key 获取哈希表中字段的数量
hincrby key filed count 为哈希表 key 中的指定字段的浮点数值加上增量 count。
hkeys key 获取所有哈希表中的字段
hvals key 获得所有的value
HEXISTS key field 查看哈希表 key 中,指定的字段是否存在。
  • 设置

    hset key field value :设置一个键值对
    hmset key field1 value1 field2 value2 ... :设置多个键值对
    
  • 获取

    hget key filed:获取存储在哈希表中指定字段的值
    hmget key filed1 filed2...:获取多个给定字段的值
    hgetall key:获取在哈希表中指定 key 的所有字段和值(了解)
    
  • 删除

    hdel key filed1 filed2 ...: 删除指定的字段
    hdel key:删除整个hash
    

五、存储list 

五、存储list 

1.概述


Redis列表是简单的字符串列表,依据插入顺序排序。你能够加上三个要素导列表的底部(左边)大概尾部(右侧)

叁个列表最多能够涵盖 2的3贰 次方- 二个成分 (4294967295, 各类列表超越40亿个要素)。特点:有序

  • ArrayList

图片 1

 

  • 单向链表

图片 2

  • 双向链表 

图片 3 

1.概述


Redis列表是回顾的字符串列表,依据插入顺序排序。你能够加上3个要素导列表的尾部(左边)或许尾巴部分(左侧)

二个列表最多可以涵盖 二的3二 次方- 3个成分 (4294967295, 各种列表超过40亿个因素)。特点:有序

  • ArrayList

图片 4

 

  • 单向链表

图片 5

  • 双向链表 

图片 6 

②.大面积命令

命令 命令描述
lpush key value1 value2… 将一个或多个值插入到列表头部(左边),没有的话会创建一个
rpush key value1 value2… 在列表中添加一个或多个值(右边),没有的话会创建一个
lpop key 左边弹出一个 相当于移除第一个
rpop key 右边弹出一个 相当于移除最后一个
lrange key startindex endindex 获取列表指定范围内的元素eg:(0 -1:查看所有, 0 3查看前4个)
llen key 返回指定key所对应的list中元素个数
lrem key count member 在key中移除指定个数的成员count > 0:从左往右移除指定个数,count < 0:从右往左移除指定个数, count = 0:清空list中指定元素
lset key index value 通过索引设置列表元素的值(0代表第一个元素, 1代表第二个,-1代表尾元素),
linsert key before|after pivot value 在pivot元素前或者元素后插入一个值
rpoplpush resource destination 移除列表的最后一个元素,并将该元素添加到另一个列表并返回 

图片 7

 

2.广泛命令

命令 命令描述
lpush key value1 value2… 将一个或多个值插入到列表头部(左边),没有的话会创建一个
rpush key value1 value2… 在列表中添加一个或多个值(右边),没有的话会创建一个
lpop key 左边弹出一个 相当于移除第一个
rpop key 右边弹出一个 相当于移除最后一个
lrange key startindex endindex 获取列表指定范围内的元素eg:(0 -1:查看所有, 0 3查看前4个)
llen key 返回指定key所对应的list中元素个数
lrem key count member 在key中移除指定个数的成员count > 0:从左往右移除指定个数,count < 0:从右往左移除指定个数, count = 0:清空list中指定元素
lset key index value 通过索引设置列表元素的值(0代表第一个元素, 1代表第二个,-1代表尾元素),
linsert key before|after pivot value 在pivot元素前或者元素后插入一个值
rpoplpush resource destination 移除列表的最后一个元素,并将该元素添加到另一个列表并返回 

图片 8

 

六、存储set

六、存储set

1.概述


Redis的Set是string类型的冬季集聚。集合成员是唯1的,那就意味着集合中不能够冒出重复的数据。

Redis 中
集合是通过哈希表完毕的,所以添加,删除,查找的时间复杂度都以O(一)。集合中最大的成员数为
23二 – 1 (4294967295, 每种集合可存款和储蓄40多亿个成员)。

特点:无序+唯一

1.概述


Redis的Set是string类型的冬日集聚。集合成员是绝无仅有的,那就象征集合中无法冒出重复的数据。

Redis 中
集合是透过哈希表达成的,所以添加,删除,查找的日子复杂度都是O(一)。集合中最大的成员数为
23二 – 一 (42949672九伍, 每一个集合可存款和储蓄40多亿个分子)。

特点:无序+唯一

二.大面积命令

命令 命令描述
sadd key member1 [member2] 向集合添加一个或多个成员
srem key member1 [member2] 移除一个成员或者多个成员
smembers key 返回集合中的所有成员,查看所有
sismember key member 判断一个set中是否有指定的member
sdiff key1 key2 返回给定集合的差集
sunion key1 key2 返回给定集合的并集
sinter key1 key2 返回给定集合的交集
scard key 获得set中成员的数量
srandmember key 随机返回set的一个成员
sdiffstore key1 key2 key3 将差异的部分插入key1

二.广阔命令

命令 命令描述
sadd key member1 [member2] 向集合添加一个或多个成员
srem key member1 [member2] 移除一个成员或者多个成员
smembers key 返回集合中的所有成员,查看所有
sismember key member 判断一个set中是否有指定的member
sdiff key1 key2 返回给定集合的差集
sunion key1 key2 返回给定集合的并集
sinter key1 key2 返回给定集合的交集
scard key 获得set中成员的数量
srandmember key 随机返回set的一个成员
sdiffstore key1 key2 key3 将差异的部分插入key1

七、存储sortedset

七、存储sortedset

1.概述

​ Redis
有序集合(sortedset)和聚众1样也是string类型成分的会晤,且区别意再度的成员。差别的是各类成分都会涉嫌1个double类型的分数。


redis正是通过分数来为集聚中的成员开展从小到大的排序。有序聚集的分子是唯一的,但分数(score)却足以重复。集合是因此哈希表落成的,所以添加,删除,查找的复杂度都以O(壹)。
集合中最大的成员数为 232 – 壹 (42949672九5,
各种集合可存款和储蓄40多亿个成员)。

  • 本性:
    唯1(成员不得以另行)+有序(遵照分数高低进行排序的)

1.概述

​ Redis
有序集合(sortedset)和聚集一样也是string类型成分的汇聚,且不容许再一次的积极分子。差异的是各样成分都会波及二个double类型的分数。


redis正是经过分数来为集聚中的成员进行从小到大的排序。有序聚集的分子是绝无仅有的,但分数(score)却得以重新。集合是透过哈希表实现的,所以添加,删除,查找的复杂度都是O(一)。
集合中最大的成员数为 23贰 – 一 (42949672玖伍,
每一种集合可存款和储蓄40多亿个分子)。

  • 特点:
    唯壹(成员不得以重新)+有序(依据分数高低进行排序的)

贰.大规模命令

命令 命令描述
zadd key score1 member1[ score2 member2] 添加一个或者多个
zcard key 获得集合成员数量
zscore key member 获取元素的得分
zrem key member1[member2] 删除一个或者多个成员
zrange key startindex endindex [withscores] 按照分数的从小到大的顺序展示所有的元素
zrevrange key start stop [withscores] 按照分数的从大到小的顺序展示所有的元素

捌、通用的操作

  • keys *: 查询全部的key

  • exists key:判断是或不是有钦点的key
    若有重回1,不然重返0

  • expire key
    秒数:设置这么些key在缓存中的存活时间

  • ttl
    key:突显钦点key的剩余时间

    ​ 若重回值为 -一:永可是期

    ​ 若再次回到值为
    -2:已过期只怕不设有

  • del key:删除内定key

  • rename key 新key:重命名

  • type key:判断四个key的类别

二.广泛命令

命令 命令描述
zadd key score1 member1[ score2 member2] 添加一个或者多个
zcard key 获得集合成员数量
zscore key member 获取元素的得分
zrem key member1[member2] 删除一个或者多个成员
zrange key startindex endindex [withscores] 按照分数的从小到大的顺序展示所有的元素
zrevrange key start stop [withscores] 按照分数的从大到小的顺序展示所有的元素

8、通用的操作

  • keys *: 查询全体的key

  • exists key:判断是不是有钦命的key
    若有再次来到一,不然再次回到0

  • expire key
    秒数:设置那一个key在缓存中的存活时间

  • ttl
    key:展示钦赐key的剩余时间

    ​ 若再次回到值为 -一:永可是期

    ​ 若重临值为
    -2:已过期可能不存在

  • del key:删除内定key

  • rename key 新key:重命名

  • type key:判断二个key的类型

九、redis的特性

九、redis的特性

一.多数据库性

​ redis默许是17个数据库,
编号是从0~15.

  • select index:切换库

  • move key index:
    把key移动到几号库(index是库的号子)

  • flushdb:清空当前数据库

  • flushall:清空当前实例下全体的数据库

一.多数据库性

​ redis暗中认可是1陆个数据库,
编号是从0~15.

  • select index:切换库

  • move key index:
    把key移动到几号库(index是库的号码)

  • flushdb:清空当前数据库

  • flushall:清空当前实例下拥有的数据库

二.服务器命令

  • ping :测试连接是不是连接

  • echo str: 打字与印刷内容

  • quit: 退出连接

  • dbsize:重回当前数据库key的多少

  • info:获取服务器新闻

 

二.服务器命令

  • ping :测试连接是或不是连接

  • echo str: 打字与印刷内容

  • quit: 退出连接

  • dbsize:重返当前数据库key的数目

  • info:获取服务器新闻

 

相关文章