redis入门

结构:
字典结构的存储服务器,提供了多个字典,相互独立。默认支持16个,编号从0开始
客户端连接后默认选择0号

SELECT 编号更换字典数据库
FLUSHALL可清空所有数据库字典的数据

启动:
直接启动redis-server
指定端口redis-server –port 6379
启动时指定配置文件redis-server /path/redis.conf如果启动时指定参数会覆盖配置文件中响应的参数

设置:
在redis运行时通过CONFIG SET在不重启redis的情况下动态修改部分配置

客户端:
redis-cli自带的命令行客户端
停止redis-cli SHUTDOWN
kill PID与SHUTDOWN效果一样
redis-cli执行默认按照配置连接redis,也可以指定参数
redis-cli -h IP -p 6379
redis-cli PING测试客户端与redis连接是否正常 PONG正常
redis-cli不带参数进入交互模式,可以自由输入命令

命令:不区分大小写
SET bar 1 建立的是字符串类型
KEYS * 获取所有的键,会遍历所有的键,较多时会影响性能
exists key判断一个键是否存在
DEL key删除键,返回值是删除的键的个数,不支持通配符
type key获得键值数据类型
递增数字:
incr key让键值自增,返回值是递增后的数据值,当不存在时默认设置为0
incrby key 3指定步长,,返回的是增加后的结果
decr key递减
decrby key 2指定步长递减
incrbyfloat key increment增加指定浮点数 incrbyfloat num 2.4

append key value 向尾部追加value,如果键不存在则将键值设置为value 返回值是追加后字符串的总长度 append num 3
strlen key获取字符串长度,如果key不存在返回0
mget key1 key2 同时获取多个key
mset key1 value1 key2 value2同时设置多个key
getbit获得一个字符串类型键指定位置的二进制位的值,索引从0开始
setbit设置二进制位的值

散列键值:
存储了字段和字段值的映射,但是字段值只能是字符串,不支持其他数据类型,换句话说散列类型不能嵌套其他类型
命令:
hset key field value给字段赋值 hset human tall 170 当插入即当前字段不存在时,返回0;当执行更新操作时返回1;hset散列类型
hget key field获取字段值
hmset key field1 value1 field2 value2 同事设置多个字段
hget key field1 field2获取多个值
hgetall key获取所有字段值返回的结果是字段和字段值组成的列表
hexists key field判断字段值是否存在,存在返回1 ,不存在返回0
hsetnx key field value与hset类似,但是如果字段已经存在不执行任何操作
hincrby key field increment 如果key不存在会自动建立并默认字段值从0开始,命令返回增加后的值

hdel key field 可以删除一个或多个key的字段del human tall sex返回值是被删除的字段个数
hkeys key只获取key中的字段名
hvals key只获取key的字段值
hlen key获得字段数量

列表类型可以存储一个有序的字符串列表,双向链表
命令:
lpush key value1 value2向列表左边增加元素,返回值表示增加元素后列表的长度
rpush key value1 value2向列表右边增加元素,返回值表示增加元素后列表的长度
lpop从列表左端弹出元素,第一步将元素从列表删除,第二部返回删除的元素
rpop从列表右端弹出元素,第一步将元素从列表删除,第二部返回删除的元素
llen获取列表中元素个数,当键不存在时返回0
lrange key start stop获取列表中某一片段,不会删除列表元素,如果stop大于实际索引范围,只会返回到最右边元素
lrem key count value删除列表中前count个值为value的元素,返回值是实际删除的元素个数
count>0从列表左边开始删除count个值为value的元素
count<0从列表左边开始删除count个值为value的元素
count=0删除所有值为value的元素
lindex key index获取指定索引的元素值,索引从0开始,如果index是负数表示从右计算,最右边元素索引是-1
lset key index value赋值索引为index的元素
ltrim key start stop只保留列表指定片段
linsert key before|after pivot value首先会在列表从左到右查找值为pivot的元素然后根据第二个参数是before还是after来决定value插到该元素前民还是后面,返回值是插入后列表元素个数
rpoplpush source destination将元素从一个列表转移到另一个列表

集合类型:
每个元素都是不同的,且没有顺序
命令:
sadd key member1 member2向集合中增加一个或多个元素,如果键不存在自动创建,如果元素已经存在就会忽略,返回的是成功添加的元素的数量
srem key member1 member2从集合中删除一个或多个元素,并返回删除成功的个数,如果删除元素不存在不作操作
smembers key获取集合中所有元素
sismember key member判断元素是否在集合中,存在时返回1,不存在时返回0
sdiff key1 key2 属于1不属于2的元素,传入key3时再做一次diff
sinter key1 key2集合交集
sunion key1 key2集合并集
scard key获得集合中元素个数
sdiffstore destination key1 key2 key3与sdiff一样,不过不直接返回结果而是存储在destination
sinterstore
sunionstore
srandmember key [count] 随机获取集合中的元素,传入count表示随机获取多个coint大于集合中的元素,返回集合中所有元素
spop key从集合中弹出一个元素,随机的

有序集合
与集合类型不同的是有序集合为每个元素都关联了一个分数
命令:
zadd key score1 member1 score2 member2加入元素和该元素的分数,如果已经存在会用新分数替换已有的分数,返回值是加入到集合中的元素个数

zscore key member获得元素的分数
zrange key start stop [withscores] zrange scoreboard 0 2 withscores按照元素分数从小到大返回从start 到stop之间的元素,加上 [withscores]会一次返回分数
zrevrange与zrange命令唯一不同在于从大到小返回
zrangebyscore key min max获取指定分数范围的元素
limit offset count在获取元素的基础上向后偏移offset个元素,并且只获取前count个
zincrby key increment member增加某个元素的分数
zcard key获取集合中元素数量
zcount key min max获得指定分数范围的元素个数
zrem key member删除一个或多个元素,返回值是成功删除的元素数量
zremrangebyrank key start stop按照元素分数从小到大的顺序删除处在指定排名范围内的所有元素
zremrangebyscore key min max删除指定分数范围内的所有元素
zrank key member获得元素排名,从小到大排列后元素的索引,从0开始
zrevrank key member从大到小

事物:
multi
sadd
sadd
exec //返回值是所有命令返回值组成的列表,对于有语法错误的事物,所有命令都不会执行;对于运行错误的,所有命令都会执行

expire key seconds设置键的生存时间
pexpire key time时间是毫秒
ttl key返回键值剩余的生存时间,键不存在时会返回-1 当没有设置生存时间时也返回-1
pttl key毫秒
persist key设置成永久生效
set 或者getset命令也可以清除生存时间设置

sort可以对列表、集合、有序集合进行排序
sort key从小到大
sort key desc 从大到小
sort key desc limit 0 3 获取从索引开始的几个数据

发布订阅:
publish channel1 msg
subscribe channel1 channel2
unsubscribe channel1 channel2取消订阅
psubscribe channel.*指定订阅规则,不能订阅channel能定于channel1 channel10
punsubscribe channel1

客户端和redis使用tcp连接
设置配置文件的requirepass参数为密码
单线程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值