• 保存到桌面  加入收藏  设为首页
数据库

缓存-Redis命令汇总-Redis常用命令-Redis安装

时间:2018-05-16 08:53:32   作者:江节胜   来源:胜行天下网   阅读:547   评论:0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167


Redis-REmote DIctionary Server 
(使用ANSI C语言编写的开源数据库)
高性能的key-value数据库
内存数据库,支持数据持久化
官网 redis.io 中文redis.cn
A、Redis常用数据类型
string、hash、list(链表)、set、sorted set(有序集合)

B、编码方式
raw int ht zipmat linkedlist ziplist intset

C、安装redis
http://download.redis.io/releases/
下载2.8.0 http://download.redis.io/releases/redis-2.8.0.tar.gz
 windows版本https://github.com/MicrosoftArchive/redis/releases
windows版本下载链接
            https://github.com/MicrosoftArchive/redis/releases/
download/win-2.8.2402/Redis-x64-2.8.2402.zip
cd /usr/mylibs/
mkdir redis
wget http://download.redis.io/releases/redis-2.8.0.tar.gz
tar -xvf redis-2.8.0.tar.gz
cd redis-2.8.0 
make
make test (测试)
You need tcl 8.5 or newer in order to run the Redis test
解决http://blog.csdn.net/luyee2010/article/details/18766911
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz  
sudo tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/  
cd  /usr/local/tcl8.6.1/unix/  
sudo ./configure  
sudo make  
sudo make install
 
D、服务端启动
redis-server
redis-server ${redis.conf}
redis-server --port ${port}

E、客户端启动与关闭
redis-cli
redis-cli -p ${port}
redis-cli -a ${password}
redis-cli -p ${port} -h ${ip} -a ${password}
关闭 
redis-cli shutdown
redis-cli -p ${port} shutdown
redis-cli -h ${ip} shutdown
redis-cli -p ${port} -h ${ip} shutdown

F、Redis基础命令
info ping quit save dbsize select flushdb flushall

G、Redis键命令
set del exists expire ttl type randomkey

H、服务启动与连接测试
redis-cli 和redis-server执行文件位置: /usr/mylibs/redis/redis-2.8.0/src
cd src > ./redis-server & 回车 (后台启动) 
关闭 kill -9 PID号
(查进程  ps -ef | grep redis)
(或者 ps aux )
重新开启一个窗口 
./redis-cli 
keys *
 
更多总结:
save 人为触发保存
直接终止进程 kill -9 PID (可能导致数据丢失,不推荐)
redis服务安全退出 ./redis-cli [-p 6379]shutdown
 
修改默认启动端口
 6379 端口在redis.conf文件中,修改完成后启动时需要指定配置文件
(另:搜索文件位置 tree | grep conf)
启动./redis-server ../redis.conf
 
启用访问密码
同样在redis.conf,搜索 /requirepass ,(N 下一个 ?从下往上 / 从上往下)
启动./redis-server ../redis.conf
 ./redis-cli [-p 6379] -a root 
注:设计到主从时,也需要配置密码 搜索 masterauth 
 
redis.clients.jedis.exceptions.JedisConnectionException: 
java.net.SocketTimeoutException: connect timed out 
使用两个窗口打开redis服务器就能连接成功
相关问题进供备用参考
https://www.cnblogs.com/bestmystery/p/6371229.html 
 
I、
基础命令
info 查看状态
select 1-15 选择数据库 (连接提示符上有数据库显示127.0.0.1:6379[10])
flushdb 清除当前database的数据
flushall 清除所有database的数据
dbsize 查看当前数据库的数据条数
monitor 监控
 
键命令实战
set test test
keys * (查看当前选择的数据库的所有的key)
del test
exists test
expire a 60 (设置a值有效时间为60秒,注意这里不是值,这里设置已存在key)
setex a 60 aa (这里是一步设置k-v和过期时间)
psetex a 10000 aa (这里的时间为毫秒,10000毫秒表示10s)
ttl test (查看当前key的剩余时间 -1表示没有过期时间 -2表示已过期,且值变成nil)
type a (返回当前值的类型)
hset hashkey key value
randomkey 随机返回当前数据库存在的key
rename a d (把key a重命名成key b,如果重命名成已经存在的key c,
那么c会被替换)
renamenx (nx结尾的命令会先判断,若已存在b,则重命名失败)
getrange a 0 2 (获取key a 的value的第0到第2位,前后都是闭区间)
 
J、数据结构-string
getset a aaa (先返回原来key的value,然后设置新的value)
mset a1 a1 b1 b1 c1 c1 (同时设置3组k-v)
mget a1 b1 c1 (同时获取多个key的value)
setnx a aa (先判断是否已存在key a,nx结尾都是先判断)
msetnx a aa b bb (具有事务原子性,要么全成功,要么全失败)
strlen a (获取key a的value的长度)
set e 1  //incr e (设置int ,incr 表示++1),incrby e 100 (每次增量为100)
//decr 和 decrby同上,另外使用 ±数量 来实现递增或递减
append a xxx (在key a 的value上追加)
(更多见“键命令实战”)

K、数据结构-hash
hset map name jiang
hexists map name (判断map中是否有name的key)
hget map name
hset map age 28
hgetall map (获取所有的key 、value (非键值对形式))
hkeys map (获取所有key)
hvals map(获取所有的value)
hlen map (获取k-v个数)
hmget map name age (同时获取多个指定key的value)
hmset map newname newnamevalue newage newagevalue(同时设置多个k-v)
hdel map key1 key2 (同时删除多key)
hsetnx map name newjiang (set前先判断)

L、数据结构-list
lpush listobj 1 2 3 4 5 6
llen listobj (获取个数)
lrange listobj 0 20 (最新的数据在最上)
lset listobj 0 100 (设置索引0的元素的值为100)
lindex listobj  0 (根据索引取值)
lpop listobj (移除第一个)
rpop listobj(移除最后一个 )

M、数据结构-set(无序、可排重、时间复杂度O(1) )
sadd set a b c d
scard set (获取set集合元素的数量)
rename set set1
sadd set2 c d e f
smembers set1 (查看集合的成员)
sdiff set1 set2 (差集 set1减去set2,abcd - cdef = ab (保留前者独立存在的))
sdiff set2 set1(cdef-abcd=fe (保留前者独立存在的))
sinter set1 set2 (交集 =cd)  
sunion set1 set2 (并集 = 所有值,但无重复)
srandmember set1 2(随机获取集合中的2个元素)
sismember set1 a (判断是不是集合中的元素)
srem set1 a b(移除集合中的a b两个元素)
spop set2 (随机移除一个元素并返回该元素(这个可用用于订单号获取))


N、数据结构-sortedset(有序集合,复杂度O(1))

zadd sortedset1 100 a 200 b 300 c (成员不可重复,但分数可重复)
type sortedset1 (=zset)
rename sortedset1 sortedset
zcard sortedset (查看集合中个数)
zscore sortedset a (查看a的分数 = 100)
zcount sortedset 0 201 (查看符合0到201前后闭区间的个数=2)
zrank sortedset a (获取索引(会先按值排序) =0)
zincrby sortedset 1000 a (给a添加1000)
zrank sortedset a (在上一步操作之后(会先按值排序) =3)
zrange sortedset 0 100 (= “b”,"c",“a”, 为什么有a?)
zrange sortedset 0 100 withscores(会分别携带相应的分数)



有任何疑问或技术合作都可联系我

微信:yanfahezuo 【推荐】

QQ:596957738


相关评论

加我微信 596957738 (QQ同号)加我微信     QQ联系:596957738    地址:江苏省南京市浦口区

苏ICP备2023050353号

   

苏公网安备32011402010305号

江节胜的Gitee,江节胜的Git地址