Redis入门

Redis(Remote Dictionary Service)直译为远程字典服务,是一种内存数据库,KV 数据库,数据结构数据库;

# redis安装

wget https://labfile.oss-internal.aliyuncs.com/courses/106/redis-4.0.9.tar.gz

tar -xzvf redis-4.0.9.tar.gz

cd redis-4.0.9
# 编译
make  
# 设置环境变量
cp redis-server /usr/local/bin/
cp redis-cli /usr/local/bin/



redis-server       #  启动redis服务器

ps -ef | grep redis   # 查看redis的进程信息

netstat -nlt| grep 6379   # 通过端口检查redis运行状态

redis中的key为字符串类型,但value有多种类型,常见的有五种,分别是字符串、列表、哈希、有序集合和无序集合。

下面是redis中一些常见的操作

redis基础操作

# 创建/查找字符串型kv
set mykey newvalue nx  # 没有相同key的情况下
set mykey newvalue xx  # 有相同key的情况下覆盖原来的key,默认为xx

get mykey # 查找mykey的值

mset a 10 b 20 c 30  # 一次性创建多个kv对
mget a b c           # 一次返回多个key对应的值



# 插入/查找列表型数据
rpush mylist A
rpush mylist B
lpush mylist first
lrange mylist 0 -1 
rpush mylist 1 2 3 4 5 "foo bar"
rpop mylist
del mylist
# list的阻塞操作
brpop list 10   # 用户获取list列表右边第一个元素,如果不存在时阻塞运行。超过时间返回nil



# 创建/查找哈希型数据
hmset user:1000 username antirez birthyear 1977 verified 1
hget user:1000 username
hget user:1000 birthyear
hgetall user:1000



# 创建/查找无序集合数据
sadd myset 1 2 3
smembers myset
# sismember 用于查看集合是否存在,匹配项包括集合名和元素
sismember myset 3
sismember myset 30
sismember mys 3


# 创建/查找有序集合数据
zadd hackers 1940 "Alan Kay"
zadd hackers 1957 "Sophie Wilson"
zadd hackers 1953 "Richard Stallman"
zadd hackers 1949 "Anita Borg"
zadd hackers 1965 "Yukihiro Matsumoto"
zadd hackers 1914 "Hedy Lamarr"
zadd hackers 1916 "Claude Shannon"
zadd hackers 1969 "Linus Torvalds"
zadd hackers 1912 "Alan Turing"

zrange hackers 0 -1          # zrange 是查看正序的集合
zrevrange hackers 0 -1       # zrevrange 是查看反序的集合

zrange hackers 0 -1 withscores  # withscores 参数返回记录值



redis的持久化机制

        内存和磁盘的区别除了速度差别以外,还有就是内存中的数据会在重启之后消失,持久化的作用就是要将这些数据长久存到磁盘中以支持长久使用。

Redis 支持两种持久化方式:

        1、snapshotting(快照):将数据存放到文件里,默认方式。 是将内存中的数据以快照的方式写入到二进制文件中,默认文件 dump.rdb,可以通过配置设置自动做快照持久化的方式。可配置 Redis 在 n 秒内如果超过 m 个 key 被修改就自动保存快照。比如: save 900 1:900 秒内如果超过 1 个 key 被修改,则发起快照保存。 save 300 10:300 秒内如果超过 10 个 key 被修改,则快照保存。

        2、Append-only file(缩写为 aof):将读写操作存放到文件中。

        由于快照方式在一定间隔时间做一次,所以如果 Redis 意外 down 掉的话,就会丢失最后一次快照后的所有修改。

        aof 比快照方式有更好的持久化性,是由于使用 aof 时,redis 会将每一个收到的写命令都通过 write 函数写入到文件中,当 redis 启动时会通过重新执行文件中保存的写命令来在内存中重新建立整个数据库的内容。

        由于 os 会在内核中缓存 write 做的修改,所以可能不是立即写到磁盘上,这样 aof 方式的持久化也还是有可能会丢失一部分数据。可以通过配置文件告诉 redis 我们想要通过 fsync 函数强制 os 写入到磁盘的时机。

appendonly yes //启用 aof 持久化方式

# appendfsync always //收到写命令就立即写入磁盘,最慢,但是保证了数据的完整持久化

appendfsync everysec //每秒钟写入磁盘一次,在性能和持久化方面做了很好的折中

# appendfsync no //完全依赖 os,性能最好,持久化没有保证

参考链接

https://xxetb.xetslk.com/s/2fs2Vb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值