Redis学习

安装Reids

1.下载获得redis-3.2.5.tar.gz后将它放入Linux目录/opt
2.压解命令tar -zxvf redis-3.2.5.tar.gz
3.压解完成后进入目录 redis-3.2.5
4.在redis-3.2.5目录下执行make命令,执行make是为了编译的,报错gcc:命令未找到
解决:能上网方法
yum install gcc
yum install gcc-c++
不能上网:在这里插入图片描述
安装完成后make会报错jemalloc/jemalloc.h:没有那个文件或目录,因为我之前make了一次,所以要make distclean后再make
然后make install
在/usr/local/bin会有下面几个文件
在这里插入图片描述
在这里插入图片描述
在环境变量,所以命令在任何目录下都能运行

说明
在这里插入图片描述
redis-server启动命令
ps -ef |grep redis查看redis进程命令

redis-server启动命令启动了在这里插入图片描述

但是占用窗口,接下来设置redis后台启动

Redis后台启动

redis-server
普通启动,没有配置文件被指定,所以用默认配置文件
在这里插入图片描述
默认配置文件位置在这里插入图片描述
将redis.conf 文件复制一份到我创建我目录下
在这里插入图片描述
修改拷贝过来的文件,修改redis.conf文件将daemonize no 改为yes 守护进程,让服务可以在后台启动
在这里插入图片描述
启动命令执行 redis-server /myredisconf/redis.conf
在这里插入图片描述
这样子redis就启动了在这里插入图片描述
redis-cli 连接客户端
连接客户端,shutdown可以关闭redis服务
在这里插入图片描述
redis-cli shutdown这个命令也可以关闭redis服务器
多个端口号连接可以使用命令:
redis-cli -p 6379
多实例关闭,指定端口关闭:
redis相关
redis有16个数据库
用客户端工具连接后select 1,这样能选择第一个数据库
sele
redis是一个单线程+多路IO服用技术
多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,不如调用select和poll函数,传入多个文件描述符,如果有一个一个文件描述符就绪,则返回,否则阻塞直到超时,得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如线程池)在这里插入图片描述

多路IO是linux的一个技术

Redis数据类型

String
String 是redis最基本类型,你可以理解成一个key对应一个value.String类型是二级制安全的,意味着Redis的string可以包含任何数据,不如jpg图片或者序列化对象
set
list
hash
zset

Redis的常用操作命令

key的常用命令

keys * 查询当前库的所有键

exists key 判断某个键是否存在

type key 查看键的类型

del key 删除某个键

expire key seconds 为键值设置过期时间,单位秒

ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已经过期

dbsize 查看当前数据库的key的数量

Flushdb 清空当前库

Flushall 通杀全部库

String

get key
查询对应键值

set key value
添加键值对

append key value
将给定的value 追加到原值的末尾

strlen key
获得值的长度

setnx key value
只有在key不存在时设置key的值

incr key
将key中存储的数字增1只能对数字值操作,如果为空,新增值为1

decr key
key中存储的数字减1,只能对数字值操作,如果为空,新增值为-1

incrby/decrby key <步长>
将key中存储的数字值增减,自定义步长

mset key1 value1 key2 value2
同时设置一个或多个key-value对

mget key1 key2 key3
同时获取一个或多个value
msetnx key1 value1 key2 value2
同时设置一个或多个key-value对,当且仅当所有给定key都不存在

getrange key <起始位置> <v结束位置>
获得范围的值,类似java中的substring

setrange key <起始位置> value
用 value 覆写 key 所存储的字符串值,从<起始位置>开始

setex key <过期时间> value
设置键值的同时,设置过期时间,单位秒

getset key value
以新换旧,设置了新值同时获得旧值

LIst

单键多值
Redis列表是简单的字符串列表,按照插入顺序排序,你可以添加元素到列表的头部(左边)或者尾部(右边)
他的底层实际是一个双向链表,对两端的操作性能高,通过索引下标的值作中间的结点性能会比较差

lpush/rpush key value1 value2 value3
从左边/右边插入一个或多个值

lpop/rpop key
从左边/右边吐出一个值,
在键在,值光键亡

rpoplpush key1 key2
从key1列表右边吐出一个值,插到key2列表左边

lrange key start stop
按照索引下标获得元素(从左到右)

index key index
按照索引下标获得元素(从左到右)

llen key
获得列表长度

linsert key before|after value newvalue
value的后面插入newvalue插入值

lrem key n value
从左边删除n个value(从左到右)

set

在这里插入图片描述sadd key value1 value2…
将一个或多个member元素加入到集合key中,已经存在于集合的member元素将被忽略

smembers key
取出该集合的所有值

sismember key value
判断集合key是否为含有该value值,有返回1,没有返回0

scard key
返回该集合的元素个数

srem key value1 value2
删除集合中的某个元素

spop key [count]
随机从该集合中吐出[count]个值,不指定count则吐出一个

srandmember key n
随机从该集合中取出n个值,不会从集合中删除

sinter key1 key2
返回两个集合的交集

sunion key1 key2
返回连个集合的并集元素

sdiff key1 key2
返回两个集合的差元素(也就是key1减交集,sdiff key2 key1 就是key2减他们的交集 )

Hash

Reids hash 是一个键值对集合
Redis hash 是一个String类型和field 和value的3映射表,hash特别适合用于存储对象
类似java里面的Map<String,String>

在这里插入图片描述
hset key field value
get key集合中的 field键赋值value

hget key1 field
key1 集合 field 取出 value

hmset key1 field1 value1 field2 value2
批量设置hash的值

hexists key field
查看哈希表key中,给定域field是否存在

hkeys key
列出该hash集合的所有value

hincrby key field increment
为哈希表key中的域field的值加上增量increment

hsetnx key field value
将哈希表key中的域field的值设置为value,当且仅当域field不存在

zset

在这里插入图片描述
命令
**加粗样式
**
zadd key score1 value1 score2 value2
将一个或多个member元素及其score值加入到有序集 key 中

zrange key start stop [WITHSCORES]
zrange key 0 -1 [WITHSCORES]获取全部
返回有序key中,下标在start stop之间的元素
带WITHSCORES,可以让分数一起和值返回到结果集

zrangebyscore key min max [withscores] [limit offset count]
返回有序集key中,所有score值介于min 和 max之间 (包括大于min或max)的成员,有序集成员按score值递增(从小到大)次序排列

zrevrangebyscore key max min [withscores] [limit offset count]
返回有序集key中,所有score值介于min 和 max之间 (包括大于min或max)的成员,有序集成员按score值递减(从大到小)次序排列

zincrby key increment value
为元素的score加上增量

zrem key value
删除该集合下,指定值的元素

zcount key min max
统计该集合,分数区间内的元素个数

zrank key value
返回该值在集合中的排名,从0开始

zcard key
查看元素个数

Redis配置文件相关

include表示当前配置文件可以包含另外的配置
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
临时的,只有在客户端有效,断开连接后失效在这里插入图片描述
可以在配置文件改为永久,foobared是你的密码在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CV工程湿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值