非关系型数据库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
		
数据库应用的发展历程 单机数据库时代:一个应用,一个数据库实例 缓存时代:对某些表中的数据访问频繁,则对这些数据设置缓存(此时数据库中总的数据量不是很大) 水平切分时代:将数据库中的表存放到不同数据库 ...
 
随机推荐
- Typora + picgo + Chevereto 优雅地上传图片
			
需求:由于经常使用typora写文章,但是配合picgo使用的sm.ms图床,github图床等,速度不稳定,因此我们想要利用自己的服务器搭建自己的图床,将自己文章的图片上传到自己的服务器中,优雅地写 ...
 - python 元组tuple介绍,使用。
			
原文 https://blog.csdn.net/ruanxingzi123/article/details/83184909 一 是什么? # python 元组tuple? ''' 元祖tupl ...
 - MySQL8.0.28安装教程全程参考MySQL官方文档
			
前言 为了MySQL8.0.28安装教程我竟然在MySQL官方文档逛了一天,至此献给想入门MySQL8.0的初学者.以目前最新版本的MySQL8.0.28为示例进行安装与初步使用的详细讲解,面向初学者 ...
 - https的页面内嵌入http页面报错的问题
			
1.https的页面内嵌入http页面报错 在HTTPS的页面上嵌入http的页面时,浏览器会直接报错.比如在HTTPS页面上用 iframe 直接嵌入一个 http 页面,比如我们可以在百度上直接嵌 ...
 - docker的使用 (2)
			
使用Docker 想要玩转Docker,最简单的办法就是马上用Docker创建一些自己学习和工作中需要用到的容器,下面我们带着大家一起来创建这些容器. 运行Nginx Nginx是高性能的Web服务器 ...
 - docker简介及安装(1)
			
Docker简介 软件开发中最为麻烦的事情可能就是配置环境了.由于用户使用的操作系统具有多样性,即便使用跨平台的开发语言(如Java和Python)都不能保证代码能够在各种平台下都可以正常的运转,而且 ...
 - CAAnimation——简介
 - VC 获取当前运行窗口名称
			
转载请注明来源:https://www.cnblogs.com/hookjc/ BOOL CALLBACK WindowChild(HWND hwnd,LPARAM lparam){ CFGDlg* ...
 - ubuntu关机重启命令介绍
			
转载请注明来源:https://www.cnblogs.com/hookjc/ 重启命令: 1.reboot 2.shutdown -r now 立刻重启(root用户使用) 3.shut ...
 - NSArray基本概念
			
1.NSArray的基本概念 什么是NSArray? NSArray是OC中的数组类,开发中建议尽量使用NSArray替代C语言中的数组 C语言中数组的弊端 int array[4] = {10, 8 ...