Redis初始

redis中不区分字母的大小写

查看端口 ss tnlp

  • 安装
    • 编译安装(需要先配置epel源)

      yum install -y redis
    • 编译安装

      wget https://download.redis.io/releases/redis-6.2.6.tar.gz
      解压
      tar -zxf redis-4.0.10.tar.gz
      3.切换redis源码目录
      cd redis-4.0.10.tar.gz
      4.编译源文件
      make
      5.编译好后,src/目录下有编译好的redis指令
      6.make install 安装到指定目录,默认在/usr/local/bin
  • redis可执行文件
    ./redis-benchmark //用于进行redis性能测试的工具
    ./redis-check-dump //用于修复出问题的dump.rdb文件
    ./redis-cli //redis的客户端
    ./redis-server //redis的服务端
    ./redis-check-aof //用于修复出问题的AOF文件
    ./redis-sentinel //用于集群管理

1、启动redis服务

  • 进入安装目录 默认/usr/local/bin
    执行./redis-server
    redis-server redis.conf
    默认情况下,redis-server会以非daemon的方式来运行,且默认服务端口为6379。
  • 启动redis后会默认占用终端口

2、redis连接

  • ./redis-cli
    [wusir@localhost bin]$ ./redis-cli
    127.0.0.1:6379> ping
    PONG
    127.0.0.1:6379>
    127.0.0.1:6379> echo 'return pong successful connection'
    "return pong successful connection
    回复pong表示连接成功
  • ECHO 与linux的打印效果一致

  • 127.0.0.1:6379> set name 'dog'
    OK
    127.0.0.1:6379> get name
    "dog"
    127.0.0.1:6379>

3、常用命令

  • 退出命令
    quit
    127.0.0.1:6379> quit
    [wusir@localhost bin]$
  • del删除命令
    127.0.0.1:6379> SET ZJW SG
    OK
    127.0.0.1:6379> SET QQ HHHH
    OK
    127.0.0.1:6379> DEL name
    (integer) 1
    127.0.0.1:6379> set name
    (error) ERR wrong number of arguments for 'set' command
    127.0.0.1:6379> get name
    (nil)
    127.0.0.1:6379> get zjw
    (nil)
    127.0.0.1:6379> get ZJW
    "SG"
    127.0.0.1:6379> get QQ
    "HHHH"
    127.0.0.1:6379> DEL ZJW QQ
    (integer) 2 删除一个或者多个值
    127.0.0.1:6379>
    127.0.0.1:6379> del aaa
    (integer) 0 不存在的被忽略掉
    127.0.0.1:6379>
  • exites key
    127.0.0.1:6379> set wusir 666
    OK
    127.0.0.1:6379> exists wusir
    (integer) 1
    127.0.0.1:6379> exists name
    (integer) 0
  • keys *

    查看所有的key 值

  • keys 匹配规则(正则)

    KEYs a??,

  • expire key 秒

    设置有效时间,

  • TTL key

    查看剩余有效时间,两个特殊值-2key不存在(KEY过期),-1永久有有效,不设置时间

  • pexpire key 毫秒

    设置有效毫秒

  • pttl key

    查看剩余毫秒

  • randomkey

    随机获取一个KEY,但是不删除,数据库为空返回nil

  • move key db

    将数据转移至其他的数据库

  • rename

    重命名KEY,如果不存在则报错

    rename key newkey,如果已有key,则直接覆盖

  • 127.0.0.1:6379> set name helloworld
    OK
    127.0.0.1:6379> keys *
    1) "wusir"
    2) "name"
    127.0.0.1:6379> set hh 12345
    OK
    127.0.0.1:6379> expire name 10
    (integer) 1
    127.0.0.1:6379> ttl name
    (integer) 5
    127.0.0.1:6379> ttl name
    (integer) 2
    127.0.0.1:6379> ttl name
    (integer) -2
    127.0.0.1:6379> ttl wusir
    (integer) -1
    127.0.0.1:6379> keys *
    1) "wusir"
    2) "hh"
    127.0.0.1:6379> keys h?
    1) "hh"
    127.0.0.1:6379> pexpire hh 9000
    (integer) 1
    127.0.0.1:6379> pttl hh
    (integer) 3405
    127.0.0.1:6379> pttl
    (error) ERR wrong number of arguments for 'pttl' command
    127.0.0.1:6379> pttl hh
    (integer) -2
    127.0.0.1:6379> pttl wusir
    (integer) -1
    127.0.0.1:6379> set zjw hello
    OK
    127.0.0.1:6379> keys
    (error) ERR wrong number of arguments for 'keys' command
    127.0.0.1:6379> keys *
    1) "wusir"
    2) "zjw"
    127.0.0.1:6379> set www fff
    OK
    127.0.0.1:6379> set ggg ccc
    OK
    127.0.0.1:6379> keys *
    1) "ggg"
    2) "wusir"
    3) "www"
    4) "zjw"
    127.0.0.1:6379> set key valse
    OK
    127.0.0.1:6379> randromkey
    (error) ERR unknown command `randromkey`, with args beginning with:
    127.0.0.1:6379> randomkey
    "www"
    127.0.0.1:6379> randomkey
    "ggg"
    127.0.0.1:6379> randomkey
    "www"
    127.0.0.1:6379>
    127.0.0.1:6379>
    127.0.0.1:6379> randomkey
    "key"
    127.0.0.1:6379> randomkey
    "www"
    127.0.0.1:6379> move www 2
    (integer) 1
    127.0.0.1:6379> move www 2
    (integer) 0
    127.0.0.1:6379> get www
    (nil)
    127.0.0.1:6379> select 2
    OK
    127.0.0.1:6379[2]> get www
    "fff"
    127.0.0.1:6379[2]> select 3
    OK
    127.0.0.1:6379[3]> randomkey
    (nil)
    127.0.0.1:6379[3]> select 0
    OK
    127.0.0.1:6379> keys *
    1) "ggg"
    2) "key"
    3) "zjw"
    4) "wusir"
    127.0.0.1:6379> rename ggg gege
    OK
    127.0.0.1:6379> rename key kkk
    OK
    127.0.0.1:6379> keys *
    1) "kkk"
    2) "zjw"
    3) "gege"
    4) "wusir"
    127.0.0.1:6379> get kkk
    "valse"
    127.0.0.1:6379> get zjw
    "hello"
    127.0.0.1:6379> rename kkk zjw
    OK
    127.0.0.1:6379> get zjw
    "valse"
    127.0.0.1:6379> renamenx gege wusir
    (integer) 0
    127.0.0.1:6379> get wusir
    "666"
    127.0.0.1:6379> get gege
    "ccc"
    127.0.0.1:6379> keys *
    1) "zjw"
    2) "gege"
    3) "wusir"
    127.0.0.1:6379> type gege
    string
    127.0.0.1:6379> type wusir
    string
    127.0.0.1:6379> type kkkkkkk
    none
    127.0.0.1:6379> lpush alexlist dsb dsb2
    (integer) 2
    127.0.0.1:6379> type alexlist
    list
    127.0.0.1:6379>
  • renamenx
    127.0.0.1:6379> keys *
    1) "ggg"
    2) "key"
    3) "zjw"
    4) "wusir"
    127.0.0.1:6379> rename ggg gege
    OK
    127.0.0.1:6379> rename key kkk
    OK
    127.0.0.1:6379> keys *
    1) "kkk"
    2) "zjw"
    3) "gege"
    4) "wusir"
    127.0.0.1:6379> get kkk
    "valse"
    127.0.0.1:6379> get zjw
    "hello"
    127.0.0.1:6379> rename kkk zjw
    OK
    127.0.0.1:6379> get zjw
    "valse"
    127.0.0.1:6379> renamenx gege wusir
    (integer) 0
    127.0.0.1:6379> 127.0.0.1:6379> get wusir
    "666"
    127.0.0.1:6379> get gege
    "ccc"
    127.0.0.1:6379> keys *
    1) "zjw"
    2) "gege"
    3) "wusir"
    127.0.0.1:6379>
  • type

    查看存储value的数据类型,如果键不存在返回None

    127.0.0.1:6379> type gege
    string
    127.0.0.1:6379> type wusir
    string
    127.0.0.1:6379> type kkkkkkk
    none
    127.0.0.1:6379> lpush alexlist dsb dsb2
    (integer) 2
    127.0.0.1:6379> type alexlist
    list
    127.0.0.1:6379>
  • select 命令
    SELECT 2;
    默认到2库中;总共有16个库,编号为0到15
    切换redis的库
    127.0.0.1:6379> select 2
    OK
    127.0.0.1:6379[2]> select 15
    OK
    127.0.0.1:6379[15]> select 16
    (error) ERR DB index is out of range 127.0.0.1:6379[15]> get name
    (nil)
    127.0.0.1:6379[15]> select 0
    OK
    127.0.0.1:6379> get name
    "dog"
    127.0.0.1:6379>
    [wusir@localhost bin]$ ./redis-cli -n 15
    127.0.0.1:6379[15]>
    启动的时候直接进行到对应库
  • info命令获取系统信息
    127.0.0.1:6379> info 不加参数显示所有
    # Server
    redis_version:6.2.6
    redis_git_sha1:00000000
    redis_git_dirty:0
    redis_build_id:c38900315f2f12fd
    redis_mode:standalone
    os:Linux 3.10.0-1160.el7.x86_64 x86_64
    arch_bits:64
    multiplexing_api:epoll
    atomicvar_api:atomic-builtin
    gcc_version:4.8.5
    process_id:8451
    process_supervised:no
    run_id:4bccf2f220d12c142d1514a61119a717b83ecb04
    tcp_port:6379
    server_time_usec:1634866336526570
    uptime_in_seconds:1048
    uptime_in_days:0
    hz:10
    configured_hz:10
    lru_clock:7476384
    executable:/usr/local/bin/./redis-server
    config_file:
    io_threads_active:0 # Clients
    connected_clients:1
    cluster_connections:0
    maxclients:10000
    client_recent_max_input_buffer:24
    client_recent_max_output_buffer:0
    blocked_clients:0
    tracking_clients:0
    clients_in_timeout_table:0 # Memory
    used_memory:873680
    used_memory_human:853.20K
    used_memory_rss:3014656
    used_memory_rss_human:2.88M
    used_memory_peak:931824
    used_memory_peak_human:909.98K
    used_memory_peak_perc:93.76%
    used_memory_overhead:830408
    used_memory_startup:809832
    used_memory_dataset:43272
    used_memory_dataset_perc:67.77%
    allocator_allocated:920808
    allocator_active:1187840
    allocator_resident:3702784
    total_system_memory:1907744768
    total_system_memory_human:1.78G
    used_memory_lua:37888
    used_memory_lua_human:37.00K
    used_memory_scripts:0
    used_memory_scripts_human:0B
    number_of_cached_scripts:0
    maxmemory:0
    maxmemory_human:0B
    maxmemory_policy:noeviction
    allocator_frag_ratio:1.29
    allocator_frag_bytes:267032
    allocator_rss_ratio:3.12
    allocator_rss_bytes:2514944
    rss_overhead_ratio:0.81
    rss_overhead_bytes:-688128
    mem_fragmentation_ratio:3.63
    mem_fragmentation_bytes:2183736
    mem_not_counted_for_evict:0
    mem_replication_backlog:0
    mem_clients_slaves:0
    mem_clients_normal:20504
    mem_aof_buffer:0
    mem_allocator:jemalloc-5.1.0
    active_defrag_running:0
    lazyfree_pending_objects:0
    lazyfreed_objects:0 # Persistence
    loading:0
    current_cow_size:0
    current_cow_size_age:0
    current_fork_perc:0.00
    current_save_keys_processed:0
    current_save_keys_total:0
    rdb_changes_since_last_save:2
    rdb_bgsave_in_progress:0
    rdb_last_save_time:1634865288
    rdb_last_bgsave_status:ok
    rdb_last_bgsave_time_sec:-1
    rdb_current_bgsave_time_sec:-1
    rdb_last_cow_size:0
    aof_enabled:0
    aof_rewrite_in_progress:0
    aof_rewrite_scheduled:0
    aof_last_rewrite_time_sec:-1
    aof_current_rewrite_time_sec:-1
    aof_last_bgrewrite_status:ok
    aof_last_write_status:ok
    aof_last_cow_size:0
    module_fork_in_progress:0
    module_fork_last_cow_size:0 # Stats
    total_connections_received:4
    total_commands_processed:19
    instantaneous_ops_per_sec:0
    total_net_input_bytes:526
    total_net_output_bytes:81517
    instantaneous_input_kbps:0.00
    instantaneous_output_kbps:0.00
    rejected_connections:0
    sync_full:0
    sync_partial_ok:0
    sync_partial_err:0
    expired_keys:0
    expired_stale_perc:0.00
    expired_time_cap_reached_count:0
    expire_cycle_cpu_milliseconds:27
    evicted_keys:0
    keyspace_hits:3
    keyspace_misses:1
    pubsub_channels:0
    pubsub_patterns:0
    latest_fork_usec:0
    total_forks:0
    migrate_cached_sockets:0
    slave_expires_tracked_keys:0
    active_defrag_hits:0
    active_defrag_misses:0
    active_defrag_key_hits:0
    active_defrag_key_misses:0
    tracking_total_keys:0
    tracking_total_items:0
    tracking_total_prefixes:0
    unexpected_error_replies:0
    total_error_replies:1
    dump_payload_sanitizations:0
    total_reads_processed:23
    total_writes_processed:19
    io_threaded_reads_processed:0
    io_threaded_writes_processed:0 # Replication
    role:master
    connected_slaves:0
    master_failover_state:no-failover
    master_replid:937790b8a90dd91e03356bf4237c7e49224caefc
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:0
    second_repl_offset:-1
    repl_backlog_active:0
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:0
    repl_backlog_histlen:0 # CPU
    used_cpu_sys:1.765061
    used_cpu_user:1.087562
    used_cpu_sys_children:0.000000
    used_cpu_user_children:0.000000
    used_cpu_sys_main_thread:1.595049
    used_cpu_user_main_thread:1.214142 # Modules # Errorstats
    errorstat_ERR:count=1 # Cluster
    cluster_enabled:0 # Keyspace
    db0:keys=1,expires=0,avg_ttl=0 127.0.0.1:6379> info cpu 加上参数显示指定的系统信息
    # CPU
    used_cpu_sys:1.860890
    used_cpu_user:1.153960
    used_cpu_sys_children:0.000000
    used_cpu_user_children:0.000000
    used_cpu_sys_main_thread:1.687953
    used_cpu_user_main_thread:1.283307
    127.0.0.1:6379>

4、redis数据类型

  • String
  • hash
  • list
  • set
  • zset 有序

非关系型数据库redis的更多相关文章

  1. JavaWeb笔记(十)非关系型数据库Redis

    Redis Redis是一款高性能的NOSQL系列的非关系型数据库 主流的NOSQL产品 键值(Key-Value)存储数据库 相关产品: Tokyo Cabinet/Tyrant.Redis.Vol ...

  2. 非关系型数据库--redis

    0.1 新单词 expire 美 /ɪk'spaɪɚ/ 到期 range 美 /rendʒ/ 范围 idle美 /'aɪdl/ 闲置的 0.2 面试题:mysql和redis和memcached区别? ...

  3. Python进阶----数据库的基础,关系型数据库与非关系型数据库(No SQL:not only sql),mysql数据库语言基础(增删改查,权限设定)

    day37 一丶Python进阶----数据库的基础,mysql数据库语言基础(增删改查,权限设定) 什么是数据库:    简称:DataBase ---->DB    数据库即存放数据的仓库, ...

  4. Redis非关系型数据库

    1.简介 Redis是一个基于内存的Key-Value非关系型数据库,由C语言进行编写. Redis一般作为分布式缓存框架.分布式下的SESSION分离.分布式锁的实现等等. Redis速度快的原因: ...

  5. python 之操作redis数据库(非关系型数据库,k-v)

    数据库: 1. 关系型数据库 表结构 2. 非关系型数据库 nosql (k - v 速度快),常用的时以下三种: memcache 存在内存里 redis 存在内存里 mangodb 数据还是存在磁 ...

  6. 数据库基础 非关系型数据库 MongoDB 和 redis

    数据库基础 非关系型数据库 MongoDB 和 redis 1 NoSQL简介 访问量增加,频繁的读写 直接访问(硬盘)物理级别的数据,会很慢 ,关系型数据库的压力会很大 所以,需要内存级的读写操作, ...

  7. Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念

    Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念 在学习redis之前我们先来学习两个概念,即什么是关系型数据库什么是非关系型数据库,二者的区别是什么,二者的关系又是什么? ** ...

  8. 【Redis】(1)-- 关系型数据库与非关系型数据库

    关系型数据库与非关系型数据库 2019-07-02  16:34:48  by冲冲 1. 关系型数据库 1.1 概念 关系型数据库,是指采用了关系模型来组织数据的数据库.关系模型指的就是二维表格模型, ...

  9. Redis 01: 非关系型数据库 + 配置Redis

    数据库应用的发展历程 单机数据库时代:一个应用,一个数据库实例 缓存时代:对某些表中的数据访问频繁,则对这些数据设置缓存(此时数据库中总的数据量不是很大) 水平切分时代:将数据库中的表存放到不同数据库 ...

随机推荐

  1. AWS SAA_C01 考试分享。

    Saa-c01 经验分享! 序言1.介绍自己的情况,我是一个做后台开发的初级java程序员.还是处于在写业务逻辑的阶段,我对aws可谓是啥都不懂,纯种的小白,完全是从0基础开始学习的.希望分享一些我的 ...

  2. 在IDE中添加widfly依赖

    动机:在IDE中添加widfly依赖 原由:widfly实现了servlet接口,有我们对外交互时所需求的jar包 步骤: 第一步: 找到module依赖的地方 第二步:点击左侧的添加按钮,点击Lib ...

  3. Java 中的锁原理、锁优化、CAS、AQS 详解!(转)

    1.为什么要用锁? 锁-是为了解决并发操作引起的脏读.数据不一致的问题. 2.锁实现的基本原理 2.1.volatile Java编程语言允许线程访问共享变量, 为了确保共享变量能被准确和一致地更新, ...

  4. WordPress子模板继承

    很多时候我们不想重写模板,而是想在某个模板的基础上进行修改,那么这个时候我们就需要用到模板继承技巧. 子主题开发 style.css 是必须的文件,只需要新增 Template: 父模板的文件夹名

  5. WEB前端开发--2(HTML基础)

    HTML基础 HTML不分大小写 1.HTML概述 HTML(HyperText MarkUp Language)"超文本标记语言",他是制作网页的标准语言 1.1 标签--元素 ...

  6. linux_5

    1 简述osi七层模型和TCP/IP五层模型 2 总结描述TCP三次握手四次挥手 TCP是一种可靠的,面向连接的全双工传输层协议. TCP连接的建立是一个三次握手的过程.如图所示: 第一次握手:主机A ...

  7. 3.k8s核心概念

    k8s的核心概念 一. Pod pod,中文翻译过来叫豆荚,如下图.我们都知道豆荚,一个豆荚里面有很多豆子.豆荚就可以理解为pod,一个个的豆子就可以理解为容器.pod和容器的关系是一个pod里面可以 ...

  8. 3.6 万颗星!开源 Web 服务器后起之秀,自带免费 HTTPS 开箱即用

    众所周知,Web 服务器是 Web 开发中不可或缺的基础服务,在开发中经常会用到.耳熟能详的开源 Web 服务器有久负盛名的 Apache.性能强劲的 Nginx.而我们今天要介绍的开源项目是采用 G ...

  9. 《PHP程序员面试笔试宝典》——如何回答技术性的问题?

    如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 程序员面试中,面试官会经常询问一些技术性的问题,有的问题可能比较简单,都是历年的面试.笔试真题,求职者在平时的复习中会经 ...

  10. 微服务从代码到k8s部署应有尽有系列(二、网关)

    我们用一个系列来讲解从需求到上线.从代码到k8s部署.从日志到监控等各个方面的微服务完整实践. 整个项目使用了go-zero开发的微服务,基本包含了go-zero以及相关go-zero作者开发的一些中 ...