redis怎么用的

本文将介绍redis的基本用法。

redis怎么用的

一、Redis基础部分: 

redis适用场合

1.取最新N个数据的操作

2.排行榜应用,取TOP N 操作

3.需要精确设定过期时间的应用

4.计数器应用

5.Uniq操作,获取某段时间所有数据排重值

6.实时系统,反垃圾系统

7.Pub/Sub构建实时消息系统

8.构建队列系统

9.缓存

SET操作每秒钟 110000 次,GET操作每秒钟 81000 次,服务器配置如下:

Linux 2.6, Xeon X3320 2.5Ghz.

stackoverflow 网站使用 Redis 做为缓存服务器。

同时也会将数据写到硬盘上。所以数据是安全的(除突然断电外,重启服务会写到dump.rdb文件中)

1)安装: 

tar zxvf redis-2.6.9.tar.gzcd redis-2.6.9makecd src && make install

登录后复制

2)移动配置文件位置(为了便于管理)

cd /usr/local/mkdir -p /usr/local/redis/binmkdir -p /usr/local/redis/etcmv /lamp/redis-2.6.9/redis.conf /usr/local/redis/etccd /lamp/redis-2.6.9/srcmv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin

登录后复制

3)修改配置文件 

vi /usr/local/redis/etc/redis.conf

登录后复制

将daemonize no 中no改为yes[yes指后台运行]

4)启动/随机启动:

cd /usr/local/redis/bin./redis-server /usr/local/redis/etc/redis.conf#启动redis并指定配置文件。#vi /etc/rc.local #设置随机启动。/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

登录后复制

5)查看是否启动成功 

ps -ef | grep redisnetstat -tunpl | grep 6379#查看端口是否占用。

登录后复制

6)进入客户端/退出 

cd /usr/local/redis/bin./redis-cli#进入quit#退出

登录后复制

7)关闭redis  

pkill redis-server#关闭./redis-cli shutdown#关闭

登录后复制

Redis安全

Redis的安全性???(由以下4种方式)

1.用ACL控制器安全性。

2.在redis.conf配置文件增加下面这一行配置,即可把redis绑定在单个接口上(但并不是只有接受这个网卡的数据)。

bind 127.0.0.1

3.给redis加上较长密码(无需要记住)

4.在redis.conf配置启用认证功能。

5.SSL代理

6.禁用指定命令。

Redis配置

daemonize    如果需要在后台运行,把该项改为yes  pidfile      配置多个pid的地址 默认在/var/run/redis.pidbind 绑定ip,设置后只接受来自该ip的请求port 监听端口,默认为6379timeout      设置客户端连接时的超时时间,单位为秒loglevel     分为4级,debug、verbose、notice、warninglogfile      配置log文件地址databases    设置数据库的个数,默认使用的数据库为0save         设置redis进行数据库镜像的频率rdbcompression    在进行镜像备份时,是否进行压缩Dbfilename        镜像备份文件的文件名Dir   数据库镜像备份的文件放置路径Slaveof     设置数据库为其他数据库的从数据库Masterauth 主数据库连接需要的密码验证Requirepass     设置登录时需要使用的密码Maxclients 限制同时连接的客户数量Maxmemory 设置redis能够使用的最大内存Appendonly 开启append only模式

以下了解即可:

Appendfsync 设置对appendonly.aof文件同步的频率

vm-enabled 是否开启虚拟内存支持

vm-swap-file 设置虚拟内存的交换文件路径

vm-max-memory 设置redis使用的最大物理内存大小

vm-page-size 设置虚拟内存的页大小

vm-pages 设置交换文件的总的page数量

vm-max-threads 设置VM IO同时使用的线程数量

Glueoutputbuf 把小的输出缓存存放在一起

hash-max-zipmap-entries 设置hash的临界值

Activerehashing 重新hash

5种数据类型:字符串、哈希、链表、集合、有序集合。

支持:push/pop、add/remove 、取交集、并集、差集、排序。

redismysql

同时也会将数据写到硬盘上。所以数据是安全的(除突然断电外,重启服务会写到dump.rdb文件中)

select num#选择库,默认在0库,共16个库

auth liweijie#授权用户所需密码(密码就是redis.conf中配置的密码)

flushdb#清空数据库。

String(字符串)类型: 

set name lijie#设置键name的值为lijie

get name#获取name的值。

keys *#查询所有的键。

setnx name liweijie#如果键已存在则返回0,不更新,防止覆盖。

setex haircolor 10 red #设置键的值的有效期为10秒。

setrange email 6 lampbre.com#替换键的值从第6个字符开始换为lampbre.com

mset name1 李大伟 name2 李小伟#设置多个键的值。

msetnxname1 张三 name3 李四#判断键是否存在,不存在则设置,否则不设置返回0

mget name1 name2 name3#一次获取多个键的值。

getset name1 Tom#重新设置键的值,并返回旧的键值。

getrange email 6 18#截取email键的值,从第6-18位间的字符。

incr uid#每次自增1 (如果key中uid不存在,则设置并从0开始,下同)

incrby uid 5#每次自增5 

incrby uid -5#每次自减5 

decr uid #每次自减1

decrby uid 5#每次自减5

appendname1 @126.com#给name1的值,添加字符串@126.com

strlenname1#返回键name1的值的长度。

Hashes(哈希)类型: 

hset user:001 name liweijie#哈希设置用户user:001的name键值为liweijie

hset user:001 age 21#同样,增加一个age键值为21

hsetnx user:001 age 22#同上,但检测键是否存在。若不存在创建。

hmset user:002 name liweijie2 age 26 sex 1#同时设置多个键的值。

hget user:001 name#哈希获取用户user:001的name键的值。

hget user:001 age #同上。

hmget user:001 name age sex#获取多个指定的键的值。

hgetall user:001#获取所有键的值。

hincrbyuser:001 age -8#在指定键上加上给定的值。

hexists user:001 sex#检测指定的键值是否存在。

hlen user:001#返回指定哈希的键个数/字段个数。

hdel user:001 sex#删除指定(user:001)哈希的指定字段或是键值。

hkeys user:003#返回哈希里所有字段或是键值。

Lists(链表)类型及操作(棧或队列): 

lpush mylist “world”#从头部插入字符串

lpush mylist “hello”#同上

lrange mylist 0 -1#获取从0到最后一个如[1) “hello” 2) “world”]

rpush mylist “jiejie”#在尾部插入

linsert mylist before “hello” “this is linsert” #指定插入位置(在hello之前插入)。

lset mylist 0 “what”#设置修改指定下标的值。

lrem mylist 1 “hello”#删除(1个)一个值为hello的元素。(n

ltrim mylist 1 2 #保留表中下标为1/2的元素。

lpop mylist#弹出开头元素并返回。

rpop mylist#弹出尾部元素并返回。

rpoplpush mylist mylist2 #从mylist尾部弹出插入到mylist2的头部。

lindex mylist 0#获取表下标为0的元素值。

llen mylist#返回表元素个数(相当于count($arr  ))。

sets(集合)类型及操作(好友推荐、blog、tag功能): 

smembers myset#查看myset集合中所有元素值。

sadd myset “hello”#向mysets集合中添加一个值hello

srem myset “hello”#删除myset集合中名称为hello的元素。

spop myset #随机弹出并返回mysets中的一个元素。

sdiff myset2 myset3#返回myset2中的与myset3的差集(以myset2为准)。

sdiffstore myset4 myset2 myset3#返回myset2中的与myset3的差集,并存入myset4中去。

sinter myset2 myset3#返回myset2与myset3的交集。

sinterstore myset5 myset2 myset3#返回myset2与myset3的交集,并存入myset5中去。

sunion myset2 myset3#求并集(去重复)

sunionstore myset6 myset2 myset3#求并集,并存入myset6中去。

smove myset2 myset3 “three”#将myset2中的three移到myset3中去。

scard myset2#返回元素个数。

sismember myset2 “one”#判断元素one是不是myset2集合的(相当于is_array())。

srandmember myset2#随机返回myset2集合中的一个元素,但不删除(相当于array_rand())。

sorted sets(有序集合)类型及操作(以scores排序): 

zadd myzset 1 “one”#向顺序1的添加元素one

zadd myzset 2 “two”#同上。

zadd myzset 3 “two”#相当于更新顺序为2的值

zrange myzset 0 -1 withscores#查看所有元素并带上排序(默认升序)。

zrem myzset “two”#删除two

zincrby myzset 2 “two”#将two的顺序值加上2

zrank myzset “two”#返回集合中元素的索引下标值。

zrevrank myzset two#元素反转并返回新下标值。

zrevrange myzset 0 -1 withscores#按顺序反转(相当于降序排序)

zrangebyscore myzset 1 10 withscores#返回顺序为1-10的元素(可做分页)。

zcount myzset 1 10 #返回顺序在1-10之间元素的个数。

zcard myzset#返回集合中所有元素的个数。

zremrangebyrank myzset 1 2#删除集合中下标为1到2的元素。

zremrangebyscore myzset 1 10#删除集合中顺序为1到10的元素。

Redis常用命令  

键/值相关命令。

keys * #查询所有

keys user*#查询指定的

exists user:001#判断是否存在。

del name#删除指定的键。

expire addr 10#设置过期时间

ttl addr#查询过期时间

select 0 #选择数据库

move age 1#将age移到1数据库。

get age #获取

persist age#移除age的过期时间。

randomkey#随机返回一个key

rename name1 name2#重命名键

type myset#返回键的类型。

ping #测试redis连接是否存活。

echo lamp#输出一个lamp

select 10#选择数据库。

quit/exit/crtl+C#退出客户端

dbsize#返回库里的键的个数。

服务器相关命令:

info#显示redis服务器的相关信息。

config get */loglevel #返回所有/指定的配置信息。

flushdb#删除当前库中的所有键/表。

flushall#删除所有数据库中的所有键/表

二、Redis高级部分: 

1、Redis安全性:  

1.用ACL控制器安全性。

2.给redis加上较长密码 

# requirepass foobared 

requirepass beijing 

3.在redis.conf配置启用认证功能。

方式一:Auth beijing

方式二:./redis-cli -a beijing

4.在redis.conf配置文件增加下面这一行配置,即可把redis绑定在单个接口上(但并不是只有接受这个网卡的数据)。

bind 127.0.0.1(单台机器的时候可以配置,分布式或主从复制时最好不要配置)

5.SSL代理

6.禁用指定命令。

2、Redis主从复制:  

redis只需在从服务器(slave)上配置即可:

slaveof 211.122.11.11 6379 #指定master 的ip 和端口 

masterauth beijing#这是master主机的密码 

Info#查看主/从服务器的状态。

3、Redis事务处理:  

Redis事务很不完善。

4、Redis持久化机制:  

方式一、备份数据到磁盘(快照)[ snapshotting(快照)也是默认方式]

记录操作命令[ Append-only file(缩写aof)的方式]

备份数据到磁盘(快照)[ snapshotting(快照)也是默认方式] 

save 900 1 #900秒内如果超过1个key被修改,则发起快照保存save 300 10 #300秒内容如超过10个key被修改,则发起快照保存save 60 10000

登录后复制

方式二、记录操作命令[ Append-only file(缩写aof)的方式](较安全持久化) 

appendonly yes #启用aof 持久化方式 # appendfsync always //收到写命令就立即写入磁盘,最慢,但是保证完全的持久化 appendfsync everysec //每秒钟写入磁盘一次,在性能和持久化方面做了很好的折中

登录后复制

以上就是redis怎么用的的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2049902.html

(0)
上一篇 2025年2月24日 02:16:01
下一篇 2025年2月24日 02:16:21

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • LNMP中如何优化数据库查询

    提升LNMP(Linux, Nginx, MySQL, PHP)架构网站性能的关键在于数据库查询优化。本文将介绍一系列行之有效的优化技巧: 一、索引策略 创建索引: 为高频查询字段创建索引,大幅提升查询速度。 例如:CREATE INDEX…

    2025年3月28日
    100
  • Swagger在Linux环境下如何进行性能优化

    提升Swagger在Linux环境下的性能,关键在于多方面策略的整合运用。以下方法可有效优化Swagger的响应速度和稳定性: 硬件资源强化: 升级服务器硬件,例如增加内存、采用更高速的CPU和SSD固态硬盘,能直接提升Swagger的运行…

    2025年3月28日
    100
  • LNMP架构中MySQL如何调优

    在LNMP (Linux, Nginx, MySQL, PHP) 架构中,MySQL数据库的性能优化至关重要。本文将探讨一系列关键的优化策略,涵盖硬件、操作系统、数据库以及监控维护等多个层面。 一、硬件资源优化 高效的硬件配置是MySQL性…

    2025年3月28日
    300
  • LAMP环境下如何优化数据库

    提升LAMP架构应用性能的关键在于数据库优化。本文将介绍一系列策略,帮助您显著改善应用程序的响应速度和效率。 一、数据库引擎选择 InnoDB: 适用于大多数应用场景,支持事务处理、行级锁和外键约束,确保数据完整性和一致性。MyISAM: …

    2025年3月28日
    100
  • Linux Kafka与其他消息队列的比较

    在构建分布式系统时,消息队列扮演着举足轻重的角色,它能有效解耦系统组件,实现异步处理,并确保数据平滑传输。然而,市面上的消息队列琳琅满目,各有千秋。本文将对Linux平台下Kafka与其他几种主流消息队列进行对比分析。 Kafka 优势:超…

    2025年3月28日
    100
  • Node.js日志中数据库查询优化建议

    在node.js应用程序中,数据库查询优化是一个重要的环节,它可以提高应用程序的性能和响应速度。以下是一些建议,可以帮助你优化node.js中的数据库查询: 选择合适的数据库:根据你的应用程序需求,选择一个适合的数据库。关系型数据库(如My…

    互联网 2025年3月28日
    100
  • Windows 10更新一直卡在80%怎么办

    windows 10 更新卡在 80%?别慌!这篇指南将帮助您解决这个问题。 windows 10 系统更新对于维护系统安全和性能至关重要,但更新过程有时会卡在 80%,令人沮丧。本文将分析可能的原因并提供详细的解决方案。 Windows …

    2025年3月28日
    100
  • Dockerfile中多个CMD指令如何优化?

    Dockerfile 中多个 CMD 指令的优化策略 高效管理 Docker 镜像的启动命令至关重要。本文将探讨如何优化 Dockerfile 中的多个 CMD 指令,并解释其背后的原理。 许多开发者误以为多个 CMD 指令会增加镜像层数,…

    2025年3月28日
    100
  • LAMP环境下Linux如何优化性能

    提升LAMP(Linux, Apache, MySQL, PHP)架构下Linux服务器性能,需要综合考量操作系统、网络、数据库等多个方面。以下策略能有效优化系统效率: 一、操作系统与内核调优 系统及内核更新: 定期更新系统和内核版本,获取…

    2025年3月28日
    100
  • phpMyAdmin性能优化策略,加速数据库管理

    phpmyadmin性能优化需从多方面入手:1. 优化mysql服务器配置,包括增加缓存(innodb_buffer_pool_size, query_cache_size),优化连接池(max_connections)和选择合适的存储引擎…

    2025年3月28日
    100

发表回复

登录后才能评论