【经典】Redis快速学习一

一、安装与启动

1)安装直接到官网下载即可

2)服务的启动和客户端的启动

      redis-server redis.config    //以redis.config这个配置文件启动redis

      redis-cli -p 6379 -a 123456  //-p是端口号,可以修改;-a 是密码,需要再配置文件中配置(requirepass)

二、通用命令

ping测试cli客户端网络是否连通服务器返回pong表示成功
shutdown-在redis关闭时候,最好用该命令,不能用kill直接杀掉,否则可能会造成数据的丢失 
select-选择数据库,默认初始化数据库16个,0-15,需要增加则可以在配置文件中指定。 
keys-列出当前数据库的所有key 
dbsize-返回当前数据库key的总数 
exists-判断是否存在某个key,如exists user 
del-删除某个键值对,如:del user 
expireexpire user 3600;设置user的过期时间为1个小时 
ttlttl user;查看user的过期时间 
flushdb-清空当前数据库中的所有数据 
flushall-清空所有数据库中的所有数据 

三、数据类型

String

-字符串类型;最大可以512M;建议在100kb左右

Hash-hash类型(Map)
List-列表类型
Set-集合类型;特点:无序、唯一、Hash(通过Hash实现,所以赠、删、改速度比较快)
ZSet-有序集合类型;特点:有序、唯一

四、常用指令

1)string常用指令

getget key-返回:value
set

set key value

ok
mget-同时获取多个key对应的value 
mset-设置多个kv如:mset name 张三 age 30 sex 男ok
del-删除:del key 
incr/decr

-如果key的值为数值,则可用incr自增1(decr自减1),如每次调用则自增1:

incr age

 
incrby/decrby

-自增自减并指定步长,如,每次自增10:

incrby age 10

 

2)Hash常用指令

hset hset 对象类型:id:属性 key value-如:hset user:1:info name 张三
hmset-保存多个kv-如:hset user:1:info name 张三 age 30 sex 男
hget-获取key对应的值 
hmget-获取多个kv 
hgetall-获取对象的所有key和value-如:hgetall user:1:info
hexists-判断是否存在-如:hexists user:1:info
hlen-获取对象有几个属性-如当前数据库已经调用以上hset例子中的指令,则:hlen user:1:info ,返回值为:3
   

3)List常用指令

rpust-右侧添加元素-如:rpush mylist 1 2 3
lpush-左... 
rpop-右侧弹出-如:rpop mylist
lpop-左侧 
llen-获取长度 
lrange

-获取范围,含头不含尾(0 2表示0,1,2),-1表示最后一个。

-如:lrange 0 2
lrange...-如第一个到最后一个:lrange 0 -1

4)Set常用指令

sadd-增加sadd user:1:fllow book
srem-删除 
smembers-查看smembers user:1:follow
scard-获取集合的总元素scard user:1:follow
srandmember-随机获取srandmember user:1:follow 2 ,随机获取两个
spop-随机弹出,即获取值后数据被移除spop user:1:follow
sdiff-差集,两个都不同时存在sdiff user:1:follow   user:2:follow
sinter-交集 
sunion-并集 

5)ZSet有序集合的常用指令

zaddzadd key score elements ...-添加

-如,添加多个学生考试分数:

zadd  student:score 100 zhangsan 99 lisi 60 wanger 80

zscorezscore key element-获取分数(可以理解为排序的序号) 
zcardzcard key-总数 
zrankzrank key element-获取排名zrank student:score zhangsan
zremzrem key element-删除 
zrangezrange key scope [withscores]-获得从低到高元素,其中withscores表示返回分数,scope表示范围-如,获取所有数据,并排序:zrange student:score 0 -1 withcores
zcountzcount key scope [withscores]-获取区间范围内的元素,并返回排序后的数据的总数

-如,80分到100分的学生,并排序:

zcount student:score 80 100

zrangebyscorezrangebyscore key scope [withscores]-获取区间范围内的元素,并返回排序后的数据的元素 

五、redis可视化工具RDM

RDM类似于Mysql的可视化工具Navicat等数据库管理软件,RDM的安装直接从官网下载下来下一步、下一步就OK。

由于出于安全考虑,Redis默认是不允许远程访问的,所有我们需要再配置文件中增加一些配置:

1)bind ip,其中0.0.0.0表示所有的远程电脑都可以访问,正式环境请不要用0.0.0.0;

2)requirepass yourpassword, 设置密码;

3)打开端口,默认6379,若6379修改,则打开修改后的端口。

 

六、Jedis的使用

Jedis是JAVA语言开发的Redis客户端工具包,用于JAVA和redis进行数据交互;它是对Redis命令的封装,同时Jedis遵循着RESP协议规范,我们可以根据RESP协议定制一个像Jedis一样的工具。

1)引入Jedis Maven坐标

2)创建redis连接通道,并配置密码,添加kv;

Jedis jedis = new Jedis(ip,port,timeout);
try(jedis){

    jedis.auth("密码");
    jedis.select(0);
    jedis.set("name","张三");

}catch(){
    ...
}

//jedis的方法就是对之前说到的指令的封装,学会命令行操作,jedis就自然会操作了。
//jedis使用后需要调用jedis.close();关闭

七、Jedis连接池(JedisPool)使用

1)创建JedisPool

//连接池配置对象
GenericObjectPoolConfig config = new JedisPoolConfig();
//最多连接池存放对象数
config.setMaxTotal(100);
//最大空闲连接
config.setMaxIdle(50);
//最小空闲连接
config.setMinIdle(10);
//以上三个配置在实际项目中,需要调优,另外建议setMaxTotal、MaxIdle一致即可。

//借出时,测试是否有效
config.setTestOnBorrow(false);
//返还是是否测试
config.setTestOnReturn(false);
//创建时是否测试有效,正式环境时如果Redis和运用程序在同一台服务器时,建议用false,
config.setTestOnCreate(true);
//全借出后,是否等待
config.setBlockWhenExhausted(true);
//全借出后,最长等待时间,若超过时间,则报错
config.setMaxWaitMills(1000);

2)获取Jedis对象(Redis连接通道)

Jedis jedis  = null;

try(jedis){ //这里关闭jedis,即jedis.close();是归还jedis给连接池的意思。

    JedisPool pool = newJedisPool(config,ip,port);

    Jedis jedis = pool.getResource();

    ....

    //获取对象之后其他和之前的一样

}catch(Exception e){
    ...
}

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值