非关系型数据库redis
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) 0keys *
查看所有的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的更多相关文章
- JavaWeb笔记(十)非关系型数据库Redis
Redis Redis是一款高性能的NOSQL系列的非关系型数据库 主流的NOSQL产品 键值(Key-Value)存储数据库 相关产品: Tokyo Cabinet/Tyrant.Redis.Vol ...
- 非关系型数据库--redis
0.1 新单词 expire 美 /ɪk'spaɪɚ/ 到期 range 美 /rendʒ/ 范围 idle美 /'aɪdl/ 闲置的 0.2 面试题:mysql和redis和memcached区别? ...
- Python进阶----数据库的基础,关系型数据库与非关系型数据库(No SQL:not only sql),mysql数据库语言基础(增删改查,权限设定)
day37 一丶Python进阶----数据库的基础,mysql数据库语言基础(增删改查,权限设定) 什么是数据库: 简称:DataBase ---->DB 数据库即存放数据的仓库, ...
- Redis非关系型数据库
1.简介 Redis是一个基于内存的Key-Value非关系型数据库,由C语言进行编写. Redis一般作为分布式缓存框架.分布式下的SESSION分离.分布式锁的实现等等. Redis速度快的原因: ...
- python 之操作redis数据库(非关系型数据库,k-v)
数据库: 1. 关系型数据库 表结构 2. 非关系型数据库 nosql (k - v 速度快),常用的时以下三种: memcache 存在内存里 redis 存在内存里 mangodb 数据还是存在磁 ...
- 数据库基础 非关系型数据库 MongoDB 和 redis
数据库基础 非关系型数据库 MongoDB 和 redis 1 NoSQL简介 访问量增加,频繁的读写 直接访问(硬盘)物理级别的数据,会很慢 ,关系型数据库的压力会很大 所以,需要内存级的读写操作, ...
- Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念
Java Redis系列1 关系型数据库与非关系型数据库的优缺点及概念 在学习redis之前我们先来学习两个概念,即什么是关系型数据库什么是非关系型数据库,二者的区别是什么,二者的关系又是什么? ** ...
- 【Redis】(1)-- 关系型数据库与非关系型数据库
关系型数据库与非关系型数据库 2019-07-02 16:34:48 by冲冲 1. 关系型数据库 1.1 概念 关系型数据库,是指采用了关系模型来组织数据的数据库.关系模型指的就是二维表格模型, ...
- Redis 01: 非关系型数据库 + 配置Redis
数据库应用的发展历程 单机数据库时代:一个应用,一个数据库实例 缓存时代:对某些表中的数据访问频繁,则对这些数据设置缓存(此时数据库中总的数据量不是很大) 水平切分时代:将数据库中的表存放到不同数据库 ...
随机推荐
- plsql 带参数的游标
-- 带参数的游标 -- cursor c(no emp.deptno%type) is select * from emp where deptno=no; 参数的起名 不要和表中的列名相同! -- ...
- js源码-自定义数组的pop和shift方法
本文将自定义_pop和_shift来模拟数组的pop和shift方法 _pop: /* *js中数组的pop方法:删除数组的最后一个元素,把数组的长度减1,并且返回删除的这个元素:如果数组为空,则po ...
- 高性能Kafka
一.概述 消息队列模式: 点对点: 1:1.就是一个队列只能由一个消费者进行消费,这个消费者消费完毕就把消息进行删除,不会再给别的消费者.只能消费者拉消息. 发布/订阅: 1:多 消息队列主动推送消息 ...
- AT2645 [ARC076D] Exhausted?
解法一 引理:令一个二分图两部分别为 \(X, Y(|X| \le |Y|)\),若其存在完美匹配当且仅当 \(\forall S \subseteq X, f(S) \ge |S|\)(其中 \(f ...
- vue中mapGetters和...mapGetters
vuex中的...mapGetters(['name'])如何实现的 vuex vue.js 根据文档介绍 https://vuex.vuejs.org/zh-cn/... 和看了 http://ww ...
- Block基本概念
1.什么是Block Block是iOS中一种比较特殊的数据类型 Block是苹果官方特别推荐使用的数据类型, 应用场景比较广泛 动画 多线程 集合遍历 网络请求回调 Block的作用 用来保存某一段 ...
- 动画移动scrollview内容
#pragma mark - 按钮的点击 - (IBAction)top { /* [UIView animateWithDuration:2.0 animations:^{ // CGPoint o ...
- 列出ubuntu软件管理工具apt的一些用法(自由总结)
安装软件包 [root@CentOS7 ~]#apt install tree 删除软件包 [root@CentOS7 ~]# apt remove tree 列出仓库软件包 [root@CentOS ...
- CentOS虚拟机关闭防火墙
关闭防火墙 systemctl stop firewalld 关闭防火墙开机自启动 systemctl disable firewalld 关闭安全机制,将selinux设置为disabled vi ...
- MXNet源码分析 | KVStore进程间通信
本文主要基于MXNet1.6.0版本进行分析. 在上一篇文章中,我们分析了MXNet中KVStore的进程内通信机制.在这篇文章中,我们主要分析KVStore如何进行多节点分布式通信. 在KVStor ...