redis最常用命令

redis配置文件所在路径:  /etc/redis/redis.conf
mysql的配置文件: /etc/mysql/mysql.conf.d/mysqld.cnf

修改redis的配置文件之前先修改下配置文件:到配置文件的目录下执行
cp redis.conf redis_bak.conf
执行ll命令查看用户权限,修改为redis权限
chown redis:redis redis_bak.conf

如何开放远程连接:注释掉本地ip地址绑定
1、redis.conf第69行:#bind 127.0.0.1 ::1
2、关闭保护模式(把yes改为no)
88行:protected-mode no
3、重启服务  sudo /etc/init.d/redis-server restart
客户端链接:redis-cli -h[ip] -p6379 -a[密码]
ping

数据类型:字符串

基础命令:
select number #切换数据库,默认有16个,0-15为数据库的编号,默认在的是0
info 查看redis服务的具体情况
keys * 匹配数据库中所有的key.
keys h?llo 匹配到的是hello ,hallo ,hxllo等
keys h*llo 匹配hllo和heeeeeello等
正式环境中:少用此命令,因为redis是单进程单线程,当key多的时候,当前命令可能会阻塞redis

type key :返回当前键的数据类型
exists key :返回当前键是否存在 ,存在1,否0
del key :删除key
rename key newkey:重命名当前key的名字
flushdb:清楚当前所在数据库数据
flushall:清楚所有数据库数据
#谨慎使用
set key calue nx ex:设置一个字符串的key
nx -> note exist 代表当key不存在的时候,存储这个key
ex ->expire 过期时间.单位s
get key :获取key
strlen key :获取key 存储值的长度
getrange key start stop :获取指定范围切片内容(包含start stop)
setrange key index value :从索引值开始,用value替换原内容,返回最新长度
mset key1 value1 key2 value2 … :批量添加key和value
mget key1 key2 key3 :批量获取key的值
incrby key 步长:将key增加指定步长
decrby key 步长:将key减少指定步长
incr key :+1操作
decr key :-1操作

ttl key :检查过期时间
-1:代表当前key没有过期时间 0:代表当前key的剩余存活时间 -2:代表当前key不存在
persist key:删除过期时间,把带有过期时间的key变为永久不过期,1代表删除过期时间成功/0代表当前key没有过期时间或者key不存在

数据类型:列表

1、元素是字符串类型,元素可重复
2、列表头尾增删快,中间增删慢
3、最多可包含2^32-1个元素
4、索引同python列表一样

lpush key value1 value2:从列表头部压入元素。返回:list的最新长度
rpush key value1 value2:从列表尾部压入元素。返回:list的最新长度

rpoplpush src dst :从列表src尾部弹出一个元素,压入到列表dst的头部。返回:被弹出的元素
linsert key after|before value newvalue :在列表指定元素后/前插入数据
返回:如果执行命令成功,返回列表的长度;如果key不存在或为空列表,返回0

lrange key start stop:查看列表中的元素
llen key :获取列表长度

lpop key:从列表头部弹出一个元素
rpop key:从列表尾部弹出一个元素

blpop key timeout :列表头部,阻塞弹出,列表为空时阻塞
brpop key timeout :列表尾部,阻塞弹出,列表为空时阻塞

lrem key count value :删除指定元素,返回:被移除的数量
count>0:表示头部开始向表尾搜索,移除与value相等的元素,数量为count
count<0:表示尾部开始向表头搜索,移除与value相等的元素,数量为count
count=0:移除表中所有与value相等的值

ltrim kwy start stop :保留指定范围的元素
lset key index newvalue :修改list指定索引的值

位图操作

位图操作实际上就是对"位"级进行操作(也就是二进制位0和1进行操作)
1字节(b)=8位(bit)

setbit:设置某位置上的二进制位
setbit key offset value
offset -偏移量
value - 0或者1

getbit :获取某位置上的值
bitcount :统计键所对应的值中有多少个1
bitcount key start end
应用场景:记录网站上用户的上线频率,计算用户上线了多少天

数据类型 -哈希

  • 由field和关联的value 组成的键值对
  • field和value是字符串类型
  • 一个hash中最多包含2^32-1个键值对

基本命令

hset key field value :设置单个字段

hsetnx key field value
nx -> note exist 代表当key不存在的时候,存储这个key

hmset key field value field value :设置多个字段
hlen key :返回字段个数

hexists key field :判断字段是否存在(不存在返回0)

hget key field:返回字段值

hmget key field field:返回多个字段值

hgetall key :返回多个键值对

hkeys key :返回所有字段名

hvals key:返回所有值

hdel key field:删除指定字段

hincrby key filed increment:在字段对应值上进行整数增量运算

python 操作hash

  • hset(name,key,value):更新一条数据的属性,没有则新建

    hget(name,key):读取这条数据的指定属性,返回字符串类型

    hmset(name,mapping):批量更新数据(没有则新建)属性,参数为字典
    hmset这条命令,在用pyredis的时候字段和字段值要字典的形式 
    key,{‘field’:‘value’,‘field’:‘value’}

    hmget(name,keys):批量读取数据(没有则新建)属性

    hgetall(name):获取这条数据的所有属性和对应的值,返回字典类型

    hkeys(name):获取这条数据的所有属性名,返回列表类型

    hdel(name,*keys):删除这条数据的指定属性

应用场景:
可用redis的哈希做缓存
redis+mysql+hash组合使用
比如说:用户想要查找个人信息,到redis缓存中查询个人信息,redis中查询不到,到mysql查询,并缓存到redis,再次查询个人信息

数据类型 -集合

概念:无序,去重,元素是字符串类型,最多包含2^32-1个元素,类似于Python的集合

sadd key member1 member2:增加一个或者多个元素,自动去重;返回值为成功插入到集合的元素个数
smembers key :查看集合中所有的元素
srem key member1 member2:删除一个或者多个元素,元素不存在自动忽略
sismember key member :元素是否存在
srandmember key [count]:随机返回集合中指定个数的元素,默认为1个
spop key [count]:弹出元素
scard key:返回集合中元素的个数
smove source destination member:把元素从源集合移动到目标集合
sdiff key1 key2 :差集(number1 1 2 3 number2 1 2 4结果为3)
sdiffstore destination key1 key2 :差集保存到另一个集合中
sinter key1 key2 :交集
sinterstore destination key1 key2
sunion key1 key2:并集
sunionstore destination key1 key2

应用场景:
社交类平台,共同好友-交集
随机类抽奖,防止元素重复,黑白名单

数据类型-有序集合(redis独有的数据类型)

有序、去重,元素是字符串类型,没个元素都关联着一个浮点数分值(score),并按照分值从小到大的顺序排序集合中的元素(分值可以相同)

zadd key score member :在有序集合中添加一个成员,返回值为成功插入到集合中的元素个数
zrange key start stop [withscores]:查看指定区间元素(升序)
zrevrange key start stop [withscores]:查看指定区间元素(降序)
zscore key member :查看指定元素的分值

返回指定区间元素:
zrangebyscore key min max [withscores] [limit offset count]
参数:min/max:最小值/最大值区间,默认是闭区间,在min前加上小括号就可设置为开区间;例如(min
offset:跳过多少个元素
count:返回几个
limit 选项和mysql 一样

zrem key member :删除成员
zincrby key increment member :增加或者减少分值
zrank key member:返回元素排名
zrevrank key member :返回元素逆序排名
zremrangebyscore key min max :删除指定区间内的元素(默认闭区间)
zcard key :返回集合中元素个数
zcount key min max :返回指定范围中元素的个数(默认闭区间)

并集:
zunionstore destination numkeys key1 key2 [weights 权重值] [aggregate sum|min|max]
#zunionstore salary3 2 salary salary2 weights 1 0.5 aggregate max
#2代表集合数量,weights之后权重1给salary,0.5给salary2集合,算完权重之后执行聚合aggregate

交集:
zinterstore destination numkeys key1 key2 [weights 权重值] [aggregate sum|min|max]
参数同并集

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Rebirth-LSS

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

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

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

打赏作者

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

抵扣说明:

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

余额充值