redis学习笔记

1、redis下载安装–ubuntu环境

​ 中文官网:http://www.redis.cn/

在这里插入图片描述

# 将下载后的压缩包上传到linux上,执行下面命令解压缩文件。
tar -zxvf  压缩包名字

# 编译redis。redis是由C语言编写的因此编译redis需要gcc编译器,先安装gcc编译器以及make
sudo apt install build-essential

# 使用make编译
make
sudo make install

# redis的默认安装路径在/usr/local/bin 如下图所示

在这里插入图片描述

 

2、使用redis

redis默认是在前台运行的,可以修改配置文件让其作为守护进程运行,配置文件就在解压的目录中,为redis.conf。打开配置文件,找到daemonize选项,将其value改为yes。

在这里插入图片描述

2.1 启动redis:

# redis启动
redis-server 配置文件路径
# 例如 redis-server /home/mgh/redis/redis-6.0.6/redis.conf

启动成功:

在这里插入图片描述

# 查看redis进程,可以看到redis的监听端口为6379
ps -ef | grep redis

在这里插入图片描述

2.2 连接redis:

# 使用redis-cli连接redis
redis-cli

# 也可以通过-p参数指定端口
redis-cli -p 6379

# 连接后可以输入ping命令来测试连接,redis会回复pong:

在这里插入图片描述

2.3 关闭redis服务

# 连接redis后,输入shutdown命令来关闭redis服务:

在这里插入图片描述

 

3、redis基础命令

redis默认有16个数据库,默认使用0号数据库。可以从配置文件查看:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qCupT0z9-1636891188268)(F:\desktop\笔记\redis学习笔记.assets\image-20211022210742819.png)]

# 使用select+索引来切换数据库,0~15
select 3

# 查看数据库大小
dbsize

# 查看数据库所有的键
keys *

# 清空当前数据库
flushdb

# 情况所有数据库
flushall

3.1 redis-key

# 查看所有的键
keys *

# 设置键值对
set key value
# e.g.  
set name zhangsan

# 根据键获取值
get key

# 判断键是否存在,存在返回1,否则返回0
exist key

# 将键值对移动到其它数据库
move key 数据库名
move name 1                      # 将name移动到1号数据库

# 设置过期时间
expire key timeout
expire name 10                   # 设置过期时间为10s

# 查看过期时间
ttl key                          
ttl name                         # 查看name的过期时间    

# 查看类型
type key

3.2 String(字符串)

# 1.追加字符串,如果key不存在则新建,就相当于set key
append key value   返回追加后的长度
# e.g.  
append name "666"

# 2.获取字符串长度
strlen key

# 3.值自增1 相当于i++
incr key
# 值自减1 
decr key

# 4.值自增/自减指定步长 相当于 i += step
incrby/decrby key step
#e.g. 
incrby views 10

# 5.字符串截取,从0开始,[start, end]闭区间
getrange key start end

# 6.字符串替换
setrange key offset value

# 6.设置值并指定过期时间 set expire
setex key seconds value
# 如果不存在则设置 set if not exist
setnx key value

# 7.批量设置、批量获取
mset key1 val1 key2 val2 ...
mget key1 key2 ...

# 8.如果不存在批量设置。原子操作,要么一起成功,要么一起失败
msetnx key1 val1 key2 val2 ...

# 设置一个对象,可以通过下面的方式: user:1 作为键 {name:zhangsan,age:3}作为值
set user:1 {name:zhangsan,age:3}

# 9.先获取再设置
getset key value

3.3 List(列表)

再redis中可以使用List作为栈(lpush lpop 或 rpush rpop)或队列(lpush rpop 或 rpush lpop)。

List是一个双向链表,在两端插入或删除的效率最高。

# 1.添加数据
lpush key ele1 ele2 ...     # 从左向右添加
rpush key ele1 ele2 ...     # 从右向左添加

# 2.弹出值(获取值并删除)
lpop key                    # 从左弹出
rpop key                    # 从右弹出

# 3.遍历list
lrange key start end 
#e.g. 遍历整个list
lrange key 0 -1

# 4.根据索引获取值
lindex key index         # 从左根据索引获取值,索引从0开始

# 5.获取列表长度
llen key

# 5.移除集合中指定个数的value
lrem key count value

# 6.截断集合,闭区间
ltrim key start stop

# 7.移除列表最后一个元素并将其移动到新的列表
rpoplpush sourkey deskey

# 8.更新值,根据下标替换指定的值,如果列表不存在或要替换的下标没有元素则报错
lset key index ele

# 9.插入值,在pivot之前或之后插入ele
linsert key BEFORE|AFTER pivot ele

3.4 Set(集合)

set中的值是不能重复的。

# 1.添加值
sadd key ele1 ele2 ...

# 2.判断是否在集合中
sismember key ele

# 3.获取set集合中元素的个数
scard key

# 4.移除元素
srem key ele

# 5.遍历集合
smembers key

# 6.随机抽选指定个数的元素,不指定数量则抽选一个
srandmember key [count]

# 7.随机删除指定个数的元素
spop key [count]

# 8.获取多个个集合的差集
sdiff key1 [key2...]

# 9.求多个集合的交集
sinter key1 [key2...]

# 10.求并集
sunion key1 [key2...]

3.5 Hash(哈希)

Map集合,key-map,也就是k-v中v保存的是一个map。

# 1.添加k-v
hset key field value [field value...]
hmset key field value [field value...]

# 2.根据字段获取值
hget key field
hmget key field1 [field2...]

# 3.获取hash长度
hlen key

# 4.获取所有键值
hgetall key

# 5.判断是否存在
hexists key field

# 6.获取所有的键或值
hkeys key
hvals key

3.6 Zset(有序集合)

# 1.添加元素
zadd key score ele [score ele...]
#e.g.
zadd salary 5000 zhangsan
zadd salary 8000 laoli

# 2.遍历集合
zrange key start end      # 从小到大排序
zrevrange key start end   # 从大到小排序

# 3.移除元素
zrem key ele [ele]

# 4.获取集合中元素个数
zcard key

3.7 Hyperloglog

Hyperloglog可以用来计算不重复的元素个数,可以用来统计网站的访问数等(一个人访问多次仍然记为一次)。有0.81%的错误率。

# 添加元素
pfadd key ele [ele...]
#e.g. 
pfadd views a b c d e a f c g h

# 统计数量
pfcount key
#e.g.
# 127.0.0.1:6379> pfcount views
# (integer) 8

# 合并集合
pfmerge deskey sourkey1 sourkey2 ...
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值