Java连接Redis和相关操作

启动Redis

redis/bin/redis-server  redis/redis.conf

启动客户端

redis/bin/redis-cli -h node1 -p 6379

数据结构
  • String类型

    • KV:【String,String】,类似于Java中Map集合的一条KV

  • Hash类型

    • KV:【String,Map集合】:Map集合的嵌套,Map集合中的元素是无序的

  • List类型

    • KV:【String,List】:有序且可重复

  • Set类型

    • KV:【String,Set】:无序且不重复

  • Zset类型

    • KV:【String,TreeMap集合】:Value也类似于Map集合,有序的Map集合

    • 类似于List和Set集合特点的合并:有序且不可重复

常用命令
  • keys:列举当前数据库中所有Key

  • 语法:keys 通配符

  • del key:删除某个KV

  • exists key :判断某个Key是否存在

  • type key:判断这个K对应的V的类型的

  • expire K 过期时间:设置某个K的过期时间,一旦到达过期时间,这个K会被自动删除

  • ttl K:查看某个K剩余的存活时间

  • select N:切换数据库的

  • Redis默认由16个数据:db0 ~ db15,个数可以通过配置文件修改,名称不能改

    • Redis是一层数据存储结构:所有KV直接存储在数据库中

  • 默认进入db0

  • move key N:将某个Key移动到某个数据库中

  • flushdb:清空当前数据库的所有Key

  • flushall:清空所有数据库的所有Key

Jedis pom文件
    <properties>
        <jedis.version>3.2.0</jedis.version>
    </properties>

    <dependencies>
        <!-- Jedis 依赖 -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>${jedis.version}</version>
        </dependency>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
连接方法
        //方式一:直接构建一个Jedis连接实例
//      Jedis jedis = new Jedis("192.168.88.151",6379);
        //方式二:使用连接池构建
        //构建连接池配置
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(10); //设置最大连接数
        //构建连接池
        JedisPool jedisPool = new JedisPool(config,"192.168.88.151",6379);
        //获取连接
        Jedis jedis = jedisPool.getResource();
        

        jedis.close();

String 操作 set/get/incr/exists/expire/setexp/ttl

Hash 操作 hset/hmset/hget/hgetall/hdel/hlen/hexists

list 操作 lpush/rpush/lrange/llen/lpop/rpop

set 操作 sadd/smembers/sismember/scard/srem

zset 操作 zadd/zrange/zrevrange/zcard/zrem

String类型的常用命令

set:给String类型的Value的进行赋值或者更新
语法:set  K      V
get:读取String类型的Value的值
语法:get K
mset:用于批量写多个String类型的KV
语法:mset  K1 V1  K2 V2 ……
mget:用于批量读取String类型的Value
语法:mget   K1  K2  K3 ……
setnx:只能用于新增数据,当K不存在时可以进行新增
语法:setnx  K  V
应用:构建抢占锁,搭配expire来使用
incr:用于对数值类型的字符串进行递增,递增1,一般用于做计数器
语法:incr  K
incrby:指定对数值类型的字符串增长固定的步长
语法:incrby  K   N
decr:对数值类型的数据进行递减,递减1
语法:decr K
decrby:按照指定步长进行递减
语法:decrby  K  N
incrbyfloat:基于浮点数递增
语法:incrbyfloat   K   N 
strlen:统计字符串的长度
语法:strlen  K
getrange:用于截取字符串
语法:getrange  s2  start   end

Hash类型的常用命令

hset:用于为某个K添加一个属性
  语法:hset  K   k  v
hget:用于获取某个K的某个属性的值
  语法:hget K  k
hmset:批量的为某个K赋予新的属性
  语法:hmset  K   k1 v1 k2 v2 ……
hmget:批量的获取某个K的多个属性的值
  语法:hmget  K  k1 k2 k3……
hgetall:获取所有属性的值
  语法:hgetall  K
hdel:删除某个属性
  语法:hdel   K   k1 k2 ……
hlen:统计K对应的Value总的属性的个数
  语法:hlen  K
hexists:判断这个K的V中是否包含这个属性
  语法:hexists  K  k
hvals:获取所有属性的value的
  语法:hvals   K

List类型的常用命令

lpush:将每个元素放到集合的左边,左序放入
  语法:lpush   K    e1  e2  e3……
rpush:将每个元素放到集合的右边,右序放入
  语法:rpush   K    e1  e2  e3……
lrange:通过下标的范围来获取元素的数据
  语法:lrange  K  start   end
  注意:从左往右的下标从0开始,从右往左的下标从-1开始,一定是从小的到大的下标
  lrange K  0  -1:所有元素
llen:统计集合的长度
语法:llen   K
lpop:删除左边的一个元素
  语法:lpop  K
rpop:删除右边的一个元素
  语法:rpop  K

Set类型的常用命令

sadd:用于添加元素到Set集合中
  语法:sadd  K   e1 e2 e3 e4 e5……
smembers:用于查看Set集合的所有成员
  语法:smembers  K
sismember:判断是否包含这个成员
  语法:sismember K   e1
srem:删除其中某个元素
  语法:srem  K  e
scard:统计集合长度
  语法:scard  K 
sunion:取两个集合的并集
  语法:sunion  K1  K2
sinter:取两个集合的交集
  语法:sinter  K1 K2

Zset类型的常用命令

zadd:用于添加元素到Zset集合中
  语法:zadd  K   score1  k1  score2  k2  ……
zrange:范围查询
  语法:zrange   K    start   end   [withscores]
zrevrange:倒序查询
  语法:zrevrange   K    start   end   [withscores]
zrem:移除一个元素
  语法:zrem  K   k1
zcard:统计集合长度
  语法:zcard K
zscore:获取评分
  语法:zscore  K  k

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值