redis的使用(二)常用命令和jedis的使用

redis常用命令和java客户端jedis的使用

一、redis的数据类型:
    String(字符串)
    Hash(哈希表)
    List(列表)
    Set(集合)
    SortedSet(有序集合)

    
二、常用命令
    redis的简单操作:
    redis是一个基于key-value的内存数据库
    插入数据库:
        set name zs
        如上在数据库中插入了一个键值对 name-zs
    查询数据库:
        get name
    删除指定数据:
        del name
    验证某个键值是否存在
        exists name    
    Expire 命令用于设置 key 的过期时间。key 过期后将不再可用。
    Expireat 命令用于以时间戳(unix timestamp)格式设置 key 的过期时间。key 过期后将不再可用。
    PEXPIREAT 命令用于设置 key 的过期时间,单位是毫秒。key 过期后将不再可用
    PERSIST 命令用于移除给定 key 的过期时间,使得 key 永不过期。
    MOVE 命令用于将当前数据库的 key 移动到给定的数据库 db 当中。
        默认Redis中有16个数据库,下标分别为0-15,默认使用的是0(select 0)
        通过select可以切换数据库 例如: select 3
    Pttl 命令以毫秒为单位返回 key 的剩余过期时间。
    TTL 命令以秒为单位返回 key 的剩余过期时间。
    RANDOMKEY 命令从当前数据库中随机返回一个 key 。
    Rename 命令用于修改 key 的名称 。
        rename msg my_msg
    Renamenx 命令用于在新的 key 不存在时修改 key 的名称 。
        renamenx username name
        只要新的名字在redis中不存在的时候才会修改成功
    Type 命令用于返回 key 所储存的值的类型。   

 服务器相关命令:
    1.ping
        测试连接是否存活
    2.echo
        在命令行打印一些内容
    3.select
        选择数据,默认从0--15.
    4.quit
        退出连接
    5.dbsize
        返回当前数据库中key的数目
    6.info:
        获取服务器的信息和统计
    7.monitor:
        监控,实时转储收到的请求(开俩客户端测试)
    8.config get :
        获取服务器配置
    9.client list
        列出客户端列表。

 

三、各数据类型的常用命令
    1.String
        String是最简单的类型。一个key对应一个value。
        String类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象。内部实现中String可以看做是个byte数组,最大上限1G字节。
        
        针对String的操作:
        1.set:
            作用:设置key对应的值为String类型的value。
            语法: set key value
            例如:
                127.0.0.1:6379> set name zhang
                OK
        2.setnx:
            作用:设置key对应的值为String类型的value。如果key已经存在,返回0.nx是not exist的意思
            语法: setnx key value
            例如:
                127.0.0.1:6379> setnx name san
                (integer) 0
                
                第一次已经设置了name=zhangsan,本次不发生修改,返回0
        3.get:
            作用:
                获取 key 对应的 string 值,如果 key 不存在返回 nil。
            语法: get key
            例如:
                127.0.0.1:6379> get name
                "zhang"

    2.hash 类型:
        Redis hash 是一个 string 类型的 field 和 value 的映射表。hash 特别适合用于存储对象。 相较于将对象的每个字段存成单个 string 类型。 将一个对象存储在 hash 类型中会占用更少的内存,并且可以更方便的存取整个对象
    
        针对hash操作:
        1.hset:
            作用:将哈希表 key 中的域 field 的值设为 value 。如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。
            语法: hset key field value
            例如:
                hset user name zhangsan
        2.hget:
            作用:返回哈希表 key 中给定域 field 的值
            语法: hget key field
            例如:
                hget user name
        3.hmset:
            作用:同时将多个 field-value (域-值)对设置到哈希表 key 中。
            此命令会覆盖哈希表中已存在的域。
            如果 key 不存在,一个空哈希表被创建并执行 HMSET 操作。
            语法:hmset key field value [field value...]
            例如:
                hmset user name zhangsan password 123 age 12 gender F
        4.hmget:
            作用:返回哈希表 key 中,一个或多个给定域的值
            语法:hmget key field [field...]
            例如:
                hmget user name password age gender
        5.hdel :
            作用:删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。
            语法: hdel key field [field....]
            例如:
                hdel user name password age gender
        6.hgetall:
            作用:获取某个hash中全部的filed及value
            语法: hgetall user
            例如:
                hgetall user
        7.hkeys        
        8.hvals
        9.hlen:求某一个key中所有的field
    3.list类型及操作:
        list 是一个链表结构,主要功能是 push、pop、获取一个范围的所有值等等,操作中 key 理解为链表的名字。
    
        Redis 的 list 类型其实就是一个每个子元素都是 string 类型的双向链表。链表的最大长度是(2的 32次方)。我们可以通过push,pop操作从链表的头部或者尾部添加删除元素。这使得list既可以用作栈,也可以用作队列。
    
        操作:
        1.lpush:
            作用:在key对应的list的头部(左)添加字符串元素
            语法: lpush key value [value...]
            例如:
                lpush mylist Helloworld
    
        2.rpush:
            作用:在key对应的list的尾部(右)添加字符串元素
            语法: rpush key value [value...]
            例如:
                rpush mylist HelloWorld
        3.lpop:
            作用:移除并返回列表key的头元素
            语法:lpop key
            例如: lpop mylist
        4.rpop:
            作用:移除并返回列表key的尾元素
            语法:rpop key
            例如: rpop mylist
        5.lrange:
            作用:返回列表key中指定区间内的元素。
            语法: lrange key start stop
            例如:lrange mylist  0 1
        6.llen:
            作用:返回列表key的长度
            语法: llen key
            例如:llen key
    
    4.set 类型及操作
        set 是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作,操作中 key 理解为集合的名字。
        
        Redis 的 set 是 string 类型的无序集合。set 元素最大可以包含(2 的 32 次方)个元素。
        set的实现时通过hash table实现的。
    
        操作:
        1.sadd:
            作用:将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的元素将被忽略。
            语法:sadd key member [member...]
            例如:sadd myset hello
        2.srem:
            作用:移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。
            语法: srem key member [member...]
            例如: srem myset hello
        3.smembers:
            作用:返回集合key中所有的成员
            语法:smembers key
            例如:smembers myset
    5.zset (sorted sets) 类型及操作
        sorted set 是 set 的一个升级版本,它在 set 的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset 会自动重新按新的值调整顺序。
        和 set 一样 sorted set 也是 string 类型元素的集合.不同的是每个元素都会关联一个 double类型的 score,并且按照这个score排序
        
        操作:
        1.zadd:
            作用:将一个或多个 member 元素及其 score 值加入到有序集 key 当中
            语法:zadd key score member [[score member] [score member]
            例如:zadd sset 1 zhangsan 2 lisi 3 wangwu
        2.zrem:
            作用:移除有序及key中的一个或多个成员。
            语法:zrem key member [member...]
            例如:zrem sset zhangsan

 

四、java客户端jedis

引入jedis的jar包(jedis-2.7.2.jar)

/**
 * jedis单实例实现
 */
@Test
public void jedisTest() {
	//创建jedis对象
	Jedis jedis = new Jedis("192.168.91.128", 6379);
	
	//直接操作redis数据库
	jedis.set("name", "zs");
	String name = jedis.get("name");
	System.out.println(name);

	//关闭连接
	jedis.close();
}

/**
 * jedis连接池的使用
 */
@Test
public void jedisPoolTest() {
	
	//获取连接池对象(单例)
	JedisPool jedisPool = new JedisPool("192.168.91.128", 6379);
	//获取jedis对象
	Jedis jedis = jedisPool.getResource();
	//使用jedis对象操作数据库
	String name = jedis.get("name");
	System.out.println(name);
	//关闭jedis连接
	jedis.close();
	//关闭连接池
	jedisPool.close();
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值