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. python 裴伯拉切数列

    裴伯拉切数列:从第三个元素开始,每个元素为该元素前面的两个元素的和. 裴伯拉切数列:0,1,1,2,3,5,8,13,21,34,55...... 求出小于n的裴伯拉切数列. def fibo(n): ...

  2. js 二分查找法之每日一更

    <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content ...

  3. NSURLConnection和Runloop(面试)

    (1)两种为NSURLConnection设置代理方式的区别 //第一种设置方式: //通过该方法设置代理,会自动的发送请求 // [[NSURLConnection alloc]initWithRe ...

  4. background-position:color url(image) -left -up no-repeat;

    转载请注明来源:https://www.cnblogs.com/hookjc/ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...

  5. SQLite 基础不扎实造成的:error code 19: constraint failed

    感谢大佬:https://www.cnblogs.com/flintlovesam/p/5241866.html (https://www.cnblogs.com/flintlovesam/p/524 ...

  6. xargs、sort、uniq命令

    xargs.sort.uniq命令,我们由LeetCode的一道题来引入,并使用加以理解: 题目是这样的:写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率. word ...

  7. 【收藏】Supervisor的作用与配置

    原文链接:https://www.jianshu.com/p/0226b7c59ae2 supervisor supervisor管理进程,是通过fork/exec的方式将这些被管理的进程当作supe ...

  8. 性能测试之监控--zabbix通过jmx监控tomcat

    前提: 已经安装好了zabbix server 实验环境 Centos 7 Zabbix 3.0 Tomcat 7.0 JDK 1.8 安装JDK tar -zxvf jdk-8u181-linux- ...

  9. Docker的数据管理(下)——docke镜像的创建

    Docker的数据管理(下)--docke镜像的创建 1.基于现有镜像创建 2.基于本地模板创建 3.基于 dockerfile 创建 4.Dockerfile 镜像操作常用命令 5.dockerfi ...

  10. Docker容器和宿主机互传文件

    1.docker容器向宿主机传送文件 格式: docker cp container_id:<docker容器内的路径> <本地保存文件的路径> 例: docker cp 10 ...