继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第7天 Redis学习

王开琦
关注TA
已关注
手记 36
粉丝 6
获赞 11

课程名称:Java架构师-技术专家

课程章节: 第7周 集群架构:主从复制高可用Redis集群
主讲老师:慕课讲师团:Geely、风间影月、阿神……

课程内容:

1、安装Redis

1.1、下载源文件

wget https://download.redis.io/redis-stable.tar.gz

1.2、编译 Redis

要编译 Redis,首先解压压缩包,切换到解压后的根目录,然后运行:make

tar -zxvf redis-stable.tar.gz
cd redis-stable
make 

编译成功后,将在目录中找到几个 Redis 二进制文件,包括 src

  • redis-server:Redis Server 本身
  • redis-cli 是用于与Redis 对话的命令行界面使用程序
    安装 以上二进制文件到 /usr/local/bin
make install

一旦安装,就可以通过以下命令启动 redis

redis-server
# 查看 redis 进程
[root@iZ2ze0mehvqbjwr4emtqz7Z ~]# ps -ef | grep redis
root     30263     1  0 21:17 ?        00:00:01 redis-server 127.0.0.1:6379
root     30323 23825  0 21:18 pts/0    00:00:00 redis-cli
root     30475 30381  0 21:21 pts/1    00:00:00 redis-cli
root     31488 31464  0 21:41 pts/2    00:00:00 grep --color=auto redis

2、Redis的数据类型-string

string字符串

string:最简单的字符串类型键值对缓存,也是最基本的。

key相关

keys *:查看所有的 key(不建议在生产上使用,有性能影响)
type key:key的类型

string 的类型

get/set/del:查询/设置/删除
set rekey data:设置已经存在的 key,会覆盖
setnx rekey data:设置已经存在的 key,不会覆盖

set key value ex time: 设置带过期时间的数据
expire key:设置过期时间
ttl:查看剩余时间,-1永不过期,-2过期

append key: 合并字符串
strlen key:字符串长度

incr key:累加1
decr key:累减1
incr key num : 累加给定数值
decr key num:累减给定数值

getrange key start end: 截取数据,end=-1代表到最后
setrange key start newdata:从 start 位置开始替换数据

mset:连续设值
mget :连续取值
msetnx:连续设值,如果存在则不设置

其他

select index :切换数据库,总共默认 16 个
flushdb:删除当前db中的数据
flushall:删除所有db中的数据

3、Redis的数据类型-hash

hash:类似map,存储结构化数据,比如存储一个对象(不能有嵌套对象)

使用

hset key property value;
hmset :设置对象中的多个键值对
hmsetnx:设置对象中的多个键值对,存在则不设置
hmget:获得对象中的多个属性
hgetall:获得对象的多个属性
hincrby user age 2: 累加属性
hincrbyfloat user age 2.2 :累加属性
hlen user:有多少个属性
hexists user age : 判断属性是否存在
hkeys user :获得所有属性
hvals user:获得所有值
hdel user:删除对象

4、 Redis的数据类型-list

list:列表,[a,b,c,d……]

使用

lpush userlist 1 2 3 4 5 :构建一个list,从左边开始存入数据
rpush userlist 1 2 3 4 5 :构建一个list,从右边开始存入数据
lrange list start end :获得数据

lpop:从左侧拿出一个数据
rpop:从右侧拿出一个数据

llen list : list 长度
lindex list index:获取list 下标的值
lset list index value
linsert list before/after value:插入一个新的值。
lrem list num value : 删除几个相同数据
ltrim list start end: 截取值,替换原来的list

5、Redis的数据类型-set

set:集合,不允许存放重复数据。

使用

sadd set mem1 mem2……:向set 中添加元素
smember set :查看set中的元素
scard set : 查看 set 的元素数量
sismember set pig:判断元素是否在set 中,返回1则在集合中。
srem set duck :删除set中的元素
spop set num:set 中的元素出栈
srandommember set num:从set 里面随机的获取num个元素,可以使用抽奖功能
smove set1 set2 mem:移动元素
set还可以做差集(sdiff set1 set2 :set1中有set2中没有的)、交集(sinter set1 set2)、并集。

6、Redis的数据结构-zset

sorted set

sorted set:排序的set,可以去重可以排序,比如可以根据用户积分做排名,积分作为set 的一个数值,根据数值可以做排序。set中的每一个member都带有一个分数。

使用

zadd zset 10 value1 20 value2 30 value3:设置member和对应的分数
zrange zset 0 -1 :查看所有zset 中的内容
zrange zset 0 -1 withscore:带有分数

zrank zset value : 获得对应的下标
zscore zset value:获得对应的分数

zcard zset :统计个数
zcount zset 分数1 分数2 :统计个数

zrangebyscore zset 分数1 分数2 :查询分数之间的member(包含分数1 分数2)
zrangebyscore zset (分数1 (分数2:查询分数之间的member,不包含分数1 和 分数2
zrangebyscore zset 分数1 分数2 limit start end : 查询分数之间的 member(包含分数1 分数2),获得的结果集合再根据下标区间做查询。
zrem zset value :删除member

学习收获

今天学习了3个小时,收获了:

  1. Redis 的安装 和 命令行工具的使用
  2. Redis 共有五大数据类型,string、hash(相当于map,不支持存储嵌套类型)、list、set(不存储相同元素)、zset(sorted set),并详细练习了命令的使用。
    今天的学习完毕!
    图片描述
    图片描述
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP