redis基础知识汇总
2021-05-07 09:47:44 4638 举报
AI智能生成
Redis是一款开源的内存数据结构存储系统,支持多种数据结构如字符串、列表、集合、散列和有序集合。它具有高性能、高可用性和丰富的功能特性,适用于缓存、消息队列、排行榜等场景。Redis采用单线程模型,通过异步非阻塞I/O和事件驱动的方式来处理并发请求,提高了性能。同时,Redis支持主从复制和哨兵模式,实现了数据的高可用性。此外,Redis还提供了Lua脚本、事务、管道等功能,方便开发者进行复杂的业务逻辑操作。总之,Redis是一款功能强大、性能优越的内存数据库,是构建高性能Web应用的理想选择。
作者其他创作
大纲/内容
什么是Redis
Redis是远程的
Redis是基于内存的
Redis是非关系型数据库
Redis的应用场景
缓存
会话缓存(Session Cache)
全页缓存(FPC)
队列
数据存储
排行榜/计数器
发布/订阅
Redis的安装(Linux环境下)
下载源码
wget http://download.redis.io/releases/redis-2.8.13.tar.gz
解压后编译并安装
tar xzf 下载的安装包名
cd 进入解压后的文件夹中
make 编译
make install 安装
Redis.conf文件配置
后台启动配置参数
daemonize yes (no-不后台启动 yes-后台启动)
端口配置参数
port 6379 (可以更改自己的端口号,客户端登陆时,如改变默认端口,则需指定设置的端口进行登陆)
信息查看命令
查看redis客户端 which redis-cli
登录:redis-cli(默认登录本机6379端口)
info命令查看redis信息
登录:redis-cli(默认登录本机6379端口)
info命令查看redis信息
Redis数据类型
String
存储的值
可以是字符串、整数或浮点,统称为元素
读写能力
对字符串操作,对整数类型加减
List
存储的值
一个有序序列集合且每个节点都包好了一个元素
读写能力
序列两端推入、或弹出元素、修剪、查改或移除元素
Set
存储的值
无序的方式,各不相同的元素
读写能力
从集合中插入或删除元素
Hash
存储的值
有key-valued的散列组,其中key是字符串,value是元素
读写能力
按照key进行增加删除
Sort Set
存储能力
带分数的score-value有序集合,其中score为浮点,value为元素
读写能力
集合插入,按照分数范围查找
PHP安装Redis扩展
redis扩展下载
wget https://github.com/phpredis/phpredis/archive/develop.zip
php查看命令
php -m
查看php已有的扩展
php -v
查看php版本
php开发包安装
yum php-devee install
安装步骤
unzip develop.zip 解压
phpize 生成configure工具
使用configure工具
./configure --with-php-config=/usr/bin/php-config
make/make install 编译/安装
php.ini - extension=redis.so 在配置php.ini文件添加“extension=redis.so”
查看php.ini配置文件命令
php --ini
PHP操作redis
redis函数手册
https://github.com/phpredis/phpredis
String类型操作 [key|value(string/int/float)]
set
设置置顶key的值
set key value
get
获取指定key的值
get key
incr
将key中储存的数字值增一
incr key
decr key
将key中储存的数字值减一
decr key
incrby
key 所储存的值增加给定的减量值(decrement)
incrby key decrement
decrby
key 所储存的值减去给定的减量值(decrement)
decrby key decrement
append
如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
append key value
setnx
只有在 key 不存在时设置 key 的值
setnx key value
mget
获取所有(一个或多个)给定 key 的值。
mget key [key...]
mset
同时设置一个或多个 key-value 对
mget key value [key value ...]
getset
将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
getset key value
setex
将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。
setex key seconds value
strlen
返回 key 所储存的字符串值的长度
strlen key
del
删除键
del key
List类型操作
[key => value1 | 自
value2 | 左
value3 | 而
value4 | 右
]
[key => value1 | 自
value2 | 左
value3 | 而
value4 | 右
]
push
lpush
将一个或多个值插入到列表头部
lpush key value1 [value2....]
rpush
将一个或多个值插入到列表尾部
rpush key value1 [value2....]
pop
lpop
移出并获取列表的第一个元素
lpop key
rpop
移出并获取列表的最后一个元素
rpop key
lrange
获取列表指定范围内的元素
lrange key start stop
llen
获取列表长度
llen key
lindex
通过索引获取列表中的元素
lindex key index
lrem
移除列表元素
lrem key count value
count > 0
从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT
count < 0
从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值
count = 0
移除表中所有与 VALUE 相等的值
lset key index value
通过索引设置列表元素的值
lset key index value
Set类型操作
key->[ value1
value2
value3
value4
]
key->[ value1
value2
value3
value4
]
sadd
向集合添加一个或多个成员(存在则返回0)
sdd key member1 [member2]
scard
获取集合的成员数
scard key
sinter
返回给定所有集合的交集
sinter key1 [key2]
sismember
判断 member 元素是否是集合 key 的成员
sismember key member
smembers
返回集合中的所有成员
smembers key
srandmember
返回集合中一个或多个随机数
srandmember key [count]
srem
移除集合中一个或多个成员
srem key member1 [member2]
Hash类型操作
key-> key1 value(string/int/float)
key2 value(string/int/float)
key3 value(string/int/float)
key4 value(string/int/float)
key-> key1 value(string/int/float)
key2 value(string/int/float)
key3 value(string/int/float)
key4 value(string/int/float)
hset
将哈希表 key 中的字段 field 的值设为 value
srem key field value
hmset
同时将多个 field-value (域-值)对设置到哈希表 key 中
hmset key field1 value1 [field2 value2]
hsetnx
只有在字段 field 不存在时,设置哈希表字段的值
hsetnx key field value
hget
获取存储在哈希表中指定字段的值
hget key field
hmget
获取所有给定字段的值
hget key field1 [field2]
hgetall
获取在哈希表中指定 key 的所有字段和值
hgetall key
hvals
获取哈希表中所有值
hvals key
hlen
获取哈希表中字段的数量
hlen key
hkeys
获取所有哈希表中的字段
hkeys key
hdel
删除一个或多个哈希表字段
hdel key field1 [field2]
hexitst
查看哈希表 key 中,指定的字段是否存在
hexitst key field
Sorc Set类型操作
key-> score(10.1) value(string/int/float) rank:1
score(9.1) value(string/int/float) rank:0
score(11.2) value(string/int/float) rank:2
key-> score(10.1) value(string/int/float) rank:1
score(9.1) value(string/int/float) rank:0
score(11.2) value(string/int/float) rank:2
zadd
向有序集合添加一个或多个成员,或者更新已存在成员的分数
zadd key score1 member1 [score2 member2....]
zcard
获取有序集合的成员数
zcard key
zcount
计算在有序集合中指定区间分数的成员数
zcount key min max
zincrby
有序集合中对指定成员的分数加上增量 increment
zincrby key increment member
zrange
通过索引区间返回有序集合成指定区间内的成员
zrange key start stop [withscores]
zrank
返回有序集合中指定成员的索引
zrank key member
zrem
移除有序集合中的一个或多个成员
zrem key member1 [member2....]
zrevrange
返回有序集中指定区间内的成员,通过索引,分数从高到底
zrevrange key start stop [withscores]
zscore
返回有序集中,成员的分数值
zscore key member
0 条评论
下一页