Redis入门之一

设置后台进程

 

进入redis.conf中的136行改成 yes  设置后台进程

  1. 修改bind  ,改成qianfeng01 
  2. 改密码  找到第500行左右  requorepass  改成123456
  3. 登录的代码

查看  ps -ef | grep redis

①redis-server /usr/local/redis/redis.conf

redis-cli -h qianfeng01 -p 6379 -a 密码

②redis-cli -h qianfeng01 -p 6379 -a 123456

进入的常用代码:

Select   indexid    0-15  切换库

Flushdb   清理当前库

Flushall      清理所有库

1. #根据匹配模式查询相关的key

   keys *   #查询所有的key

   keys ?O*   #查询第二个字符是O的key

2. dbsize     #查看当前库下所有的key的个数

3. exists key   #判断某一个key是否存在,  0表示不存在,1表示存在

4. type key    #查看key的类型

5. del key   #删除某一个key    1 表示删除成功  0表示删除失败

6. unlink key #删除某一个key(非阻塞删除)

 #仅将key从keyspace元数据中删除,真正的删除会在后续中异步删除   (先奏后斩的意思)

7. expire key seconds     #设置key的存活时间

8. persist key    #清除key的存活时间,  已经过期的清除没有意义

9. ttl key       #查看key的存活时间    -2表示过期  -1 表示永不过期

set指令的语法格式:set key value [EX seconds] [PX milliseconds] [NX|XX]

     EX: KV的存活时间,单位是秒

     PX: KV的存活时间,单位是毫秒

     NX: K不存在时,会设置成功

     XX: K已经存在时,会覆盖

get指令的语法格式:

 get key

append city shanghai   <==  在key对应的原有的value上追加字符串

有关运算的

set num 1

decr num         <==  递减1   要求 value的类型是整形

decrb num 5     <==  递减5   指定步长

incr num                <==  自增+1

incrby num 2           <==  指定自增的步长

有关字符串的

get city  "beijingshanghai"

getrange city 0 2     包前包后 截取字符串

getsetcity shenyang    <==  覆盖值,并返回原有的值

      设置多对

      mset username zhangsan age 23 gender f isMarry false    <==  设置多对KV

      mget username age gender isMarry num     <== 获取多个Key的value值

api实现

package com.qf;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.params.SetParams;

import java.util.ArrayList;
import java.util.List;


public class RedisDemo03_String {
   
public static void main(String[] args) {
        setOfString();
        getOfString();
    }
   
//set命令的测试
    public static void setOfString(){
        Jedis jedis =
new Jedis("qianfeng01",6379);
        jedis.auth(
"123456");
        jedis.set(
"classno","sz2103");
        SetParams setParams =
new SetParams();  //无参构造器
        setParams.ex(100);  //存活时间
        //setParams.px(5000);
       
jedis.set("teahcer","cidy",setParams);
        jedis.setnx(
"teaher1","anjing");
        jedis.append(
"city","is good");   //对已有的进行追加
        jedis.incr("num");
        jedis.incrBy(
"num",3);
        jedis.mset(
"k1","100","k2","200");
        jedis.close();
    }
   
//get命令的测试
    public static void getOfString(){
        Jedis jedis =
new Jedis("qianfeng01",6379);
        jedis.auth(
"123456");
        String classno = jedis.get(
"classno");   //get(key)
       
System.out.println("classno:"+classno);
        String teacher = jedis.get(
"teacher");
        System.
out.println("teahcer"+teacher);
        Long teacherTTL = jedis.ttl(
"teacher");  //存活时间
        System.out.println("teacherTTL:"+teacherTTL);
        String teaher1 = jedis.get(
"teacher1");
        System.
out.println("teacher1:"+teaher1);
        String city = jedis.get(
"city");
        System.
out.println("city"+city);
        String num = jedis.get(
"num");
        System.
out.println(num);
        List<String> list = jedis.mget(
"k1", "k2");    //对多种ky的遍历 打印了value
       
for (String s : list){
            System.
out.println(s);
        }
        jedis.close();
    }
}

hashes类型

# hset命令的语法格式:

       hset key field value

       hmset key field value [field value ...]

# hget命令的语法格式:

       hget key field

       hmget key field [field ...]

qianfeng01:6379> hset people username lucy          <== 设置people的姓名字段的值

(integer) 1

qianfeng01:6379> hmset people age 24 gender m isMarry true   <== 设置people的其他多个字段的值

OK

qianfeng01:6379> hget people username               <== 获取people的姓名字段的值

"lucy"

qianfeng01:6379> hmget people username age gender isMarry    <== 获取people的多个字段的值

1) "lucy"

2) "24"

3) "m"

4) "true"

qianfeng01:6379> hdel people username isMarry   <== 删除people的多个字段

(integer) 2

qianfeng01:6379> hgetall people    <== 获取people的所有字段和值

1) "age"

2) "24"

3) "gender"

4) "m"

qianfeng01:6379> HEXISTS people gender   <== 判断gender字段是否存在, 1表示存在, 0表示不存在

(integer) 1

qianfeng01:6379> HEXISTS people isMarry

(integer) 0

qianfeng01:6379> HINCRBY people age 4   <==  对整数类型的field进行增加 数字

(integer) 28

qianfeng01:6379> hkeys people   <==  获取hash类型的所有的fields

1) "age"

2) "gender"

qianfeng01:6379> HLEN people    <==  获取hash类型的fields的个数

(integer) 2

qianfeng01:6379> hsetnx people isMarry false   <==  设置字段的值,如果不存在,就成功,如果存在,就报错

(integer) 1

qianfeng01:6379> hsetnx people isMarry true    <==  0表示不成功,1表示成功

(integer) 0

qianfeng01:6379> hget people isMarry

"false"

qianfeng01:6379> HSTRLEN people isMarry        <==  获取指定的field的value的字符串长度

(integer) 5

qianfeng01:6379> hvals people              <==  获取hash类型的所有的value

1) "28"

2) "m"

3) "false"

Api

package com.qf; import redis.clients.jedis.Jedis; import java.util.HashMap; import java.util.Map; import java.util.Set; public class RedisDemo04 {     public static void main(String[] args) {         hsetOfHash();         hgetOfHash();     }     public static void hsetOfHash(){         Jedis jedis = new Jedis("qianfeng01",6379);         jedis.auth("123456");         Map<String,String> map = new HashMap<>();         map.put("product_id","1091");         map.put("product_name","thinkpadt760");         map.put("product_desc","系列好");         map.put("product_warehouse","901");         map.put("product_evaluation","非常好");         jedis.hmset("product_clothing_1001",map);         jedis.close();     }     public static void hgetOfHash(){         Jedis jedis = new Jedis("qianfeng01",6379);         jedis.auth("123456");         if(jedis.exists("product_clothing_1001")){             Map<String,String> map = jedis.hgetAll("product_clothing_1001");             Set<Map.Entry<String,String>> entries = map.entrySet();             for(Map.Entry<String,String> entry :entries ){                 System.out.println(entry.getKey()+"\t"+entry.getValue());             }         }         jedis.close();     } }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值