Redis入门操作笔记

上传
解压
make
进入文件夹
安装到指定文件夹
make PREFIX=/usr/local/ridis install

进入/usr/local/ridis可以看见bin目录
里边有redis-cli和redis-service等
进入/home/docker/redis/redis-4.0.1(解压目录)
赋值redis-conf文件到安装目录
cp redis.conf /usr/local/ridis


启动redis服务器
进入:cd /usr/local/ridis
执行:./bin/redis-server ./redis.conf

启动客户端
进入:cd /usr/local/ridis

执行:./bin/redis-cli

关闭:
./bin/redis-cli shutdown

String 命令笔记

赋值:set key value(类似map)
执行:set ower hulang(相同的key,不同的value会覆盖)
获取:get key
如果不存在则返回:(nil)

删除指定key:del key
del ower
返回值是数字类型,表示删除了几个:(integer)1


getset key value
先获取该key的值,在为其设置新值
getset name hulang
原来的zhangsan就改成了hulang

返回值是该key的原来的值(zhangsan)

incr key
将指定的key递增1,如果不存在,则先定义并赋值为0,再递增

incr num
get num
结果为:1
如果该key不能转换成数字,(error) ERR value is not an integer or out of range

decr key 指定key递减 如果不存在,先定义并赋值为0 再递减
如果该key不能转换成数字,(error) ERR value is not an integer or out of range

incrby key increment
将指定的key的value按指定数字增加,如果key不存在,则初始化key的值为0,再递增
返回值是key递增后的值

decrby key decrement

将指定的key的value按指定数字递减,如果key不存在,则初始化key的值为0,再递增
返回值是key递减后的值



append key value
拼接字符串,如果该key存在,则在原有的value后追加该值,如果该key不存在,则重新创建一个key/alue
返回的是该字符串的长度



清空数据库:flushdb

hash操作:

hset key 字段名 字段值 字段名 字段值……
返回值是添加字段的个数
hset student add beijing email 123@qq.com

对应hget student email
返回的是字段的值

一次赋值多个字段
hmset student add beijing email 123@qq.com

hmget student add email
一次取出多个值

hgetall key
取出所有字段

hdel key 字段名
删除指定字段

del key
删除所有字段

添加测试数据
hmset hulang name hulang age 23 qq 132 wechar a123 email 123@qq.com

hincrby key field increment
hincrby hulang age 2

把hash的某个字段增加指定数值,返回增加后的值

hdecrby key field increment
hdecrby hulang age 2

判断某个字段是否存在
hexists hulang girlfirend
存在返回1,不存在返回0

查看hash包含多少个字段
hlen key
返回值是字段的个数

查看所有字段名
hkeys key
查看所有字段的值
hvals key

centOS7查看端口状态:
firewall-cmd --state
重新载入配置(添加新规则后执行此命令)
firewall-cmd --reload
永久添加端口(比如6379)
firewall-cmd --add-port=6379/tcp --permanent


关闭防火墙
systemctl stop firewalld.service
查看规则:
iptables -L -n


本机测试连接远程端口(cmd)
telnet 192.168.43.108 6379


list笔记:【使用场景:用户时间线,发表的说说、朋友圈】
添加数据:
从左往右添加 lpush key value value value value
从右往左添加 rpush key value value value value

获取数据:
lrange key start end
从开始索引取到结束索引的元素,超出了范围会将现有元素全部查出


LPOP key 移除并返回最左端的元素,时间复杂度为O(1)
RPOP key 移除并返回最右端的元素,时间复杂度为O(1)


LLEN key 返回列表key的长度,时间复杂度为O(1)

LINDEX key index 返回指定列表项,未找到返回nil
index可正可负,负数表示从后边找

LSET key index value
设置指定索引上的列表项

LINSERT key BEFORE|AFTER pivot value
在指定元素前/后插入列表项,成功返回新列表长度,时间复杂度为O(N)

LREM key count value(效率低)
根据参数count的值,移除列表中与参数value相等的列表项
count大于0,从表头向表尾搜索,移除最多count个
count小于0,从表尾向表头搜索,移除最多count个
count等于0,移除所有值为value的列表项
返回被移除项的数量

LTRIM key start stop
对一个列表进行截取,只保留指定索引范围内的元素,其他删除
命令的复杂度为O(N)

RPOPLPUSH resouce destination
从resouce 弹出 添加入 destination头部

RPOPLPUSH list list
循环队列,参数是同一个列表


Set 基本操作
SADD key member[member member member member member member]
返回新添加到集合的元素数量

SREM key element[element element]
移除一个或多个元素,返回存在并被移除的元素的数量

SISMEMBER key element
检查给定元素是否存在于集合中,存在返回1,不存在返回0
【使用场景:看视频前的是否是会员判断】

SCARD key 返回集合的大小

SMEMBERS key 返回集合包含的所有元素
【点赞次数、投票功能】

SPOP key 随机移除一个元素(因为是无序的,所以移除谁是随机的)

SRANDMEMBER key [count]
随机取出包含一个或指定个数元素的数组,不会删除
注:当count为负数时,会返回一个数组,数组中的元素可能会出现多次,而数组的长度为count的绝对值
【使用场景:微博抽奖、转发抽奖等】

SDIFF key key [key……]
计算所有给定集合的差集并返回结果

SDIFFSTORE destkey key key [key……]
计算所有给定集合的差集,并将结果存储到destkey

SINTER key key 计算所有给定集合的交集,并返回结果

SINTERSTORE destkey key key [key……]
计算所有给定集合的交集,并将结果存储到destkey

SUNION key key [key……]
计算所有集合的并集,并返回结果

SUNIONSTORE destkey key [key……]
计算所有集合的并集,并存储到destkey中
【使用场景:微博的共同关注、QQ的共同好友、网购商品刷选】

有序集合笔记(soted set/zset)

待续……