redis

Posted kanglun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis相关的知识,希望对你有一定的参考价值。

  1 redis 基本操作
  2 
  3 
  4 
  5 进入redis
  6 
  7     redis-cli   
  8     
  9     #不能进入,就安装:
 10     sudo apt-get update
 11     sudo apt-get install redis-server
 12     
 13     exit        #退出
 14 
 15     Select 命令用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。
 16     #默认使用 0 号数据库   默认开16个库
 17     SELECT 1     # 使用 1 号数据库,Redis 现在的命令提示符多了个 [1]
 18 
 19 
 20 
 21 
 22 
 23 redis五种数据类型、及操作
 24 
 25 - string 字符串    
 26 - list 列表 
 27 - hash 哈希
 28 - set 集合
 29 - sorted sets 有序集合
 30 
 31 string
 32 
 33     string 类型是 redis 最基本的类型, string 类型,一个 key 对应一个 value,一个 value 最大能存储512MB的数据。
 34 
 35 - set key value
 36   - 设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
 37   - set name juhao
 38 
 39 - get key
 40   - 返回key的值,若key不存在则返回nil      
 41     
 42     mset key value  [key value..]    
 43   - 为多组key设置值,该操作为原子操作,要么一组都设置成功,要么一组都设置失败;
 44   - mset username root  password  123 name juhao
 45     
 46 - mget key [key...]      
 47   - 返回一个或多个key的值,若key不存在返回nil,若key存在但不是字符串返回nil
 48   -     mget username, password, name        #有,号会被认为是key的一部分
 49         mget username password name
 50     
 51 - append key value    
 52   - 将指定的值追加到key末尾,若key不存在,则创建并赋值,返回追加后的字符串长度
 53   - append name  love
 54 
 55 
 56 
 57 - ttl key
 58   - 返回key的剩余生存时间, -1 表示永久存在, -2表示不存在
 59   
 60 - set key value ex seconds      
 61   - 设置 key的同时,设置过期时间(单位:秒) key 过期后将不再可用,会被系统自动删除。
 62   -     set age 18 ex 20    
 63         或 setex key seconds value 例: ( setex sex 20  )
 64 
 65 
 66 
 67 - persist key  
 68   - 移除指定key的生存时间,成功返回1,若key不存在或不存在生存时间时返回0;
 69 
 70   
 71 
 72 全局key操作
 73 
 74 - rename key newkey        改名
 75   - 当key和newkey相同或者key不存在时返回一个错误,当newkey已存在时则会覆盖;
 76   -     keys *                    # 查看所有的key
 77         
 78         del key                    # 删除    返回成功的个数
 79         
 80         exists key                # 查看key是否存在  返回存在个个数
 81         
 82         type key                # 查看key类型
 83         
 84         expire key seconds        #设置过期时间    
 85            
 86         persist key                #移除过期时间
 87             
 88         flushdb                    #删除当前数据库中的所有key
 89         
 90         flushall                #删所有
 91     
 92 
 93 
 94 
 95 list
 96 
 97     列表的元素类型为string,
 98     按照插入顺序排序
 99     在列表的头部或者尾部添加元素
100 
101 
102 
103 - lpush key value[value...]            
104   - 在头部插入数据
105   -     lpush  key  value     #例  lpush my_list a b c d
106   - 在尾部添加数据
107   -     rpush  key  value     #例  rpush my_rlist a b c d
108 
109 
110 
111 - lindex key index         
112   - 返回列表中元素的值。index从0开始,当index超出索引时返回null
113   -     lindex my_list 3    #查看第个
114   
115 - lrange key start stop       
116   - 查看索引范围内元素的值
117   -     lrange my_list 0 -1        #查看所有值
118 
119 - llen key                       
120   - 返回列表的长度
121     
122 
123 - lset key index newvalue   
124   - 指定索引号进行修改
125   -     lset my_list 0  hello
126 
127   
128 
129 - 删除
130   - lpop key    删除左边第一个
131   - rpop my_list
132   - rpop key   删除右边第一个
133   - rpop my_list
134     
135   - lrem key count value  
136     - 删除指定数量的value值
137     -     rpush  test_list  c a a b b c  d e a d f m c
138           
139           #count > 0 从左往右 删除数量为count的value
140           例 : lrem test_list 2 a
141           lrange test_list 0 -1
142           
143           #count = 0 删除所有的 value
144           例 : lrem test_list 0 d,              
145           
146           #count < 0 从右往左 删除数量为count的value
147           例 : lrem test_list -2 c
148       
149 
150 hash
151 
152     是一个键值(key=>value)对集合。是string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象
153     field 域
154     value 值
155 
156 设置/修改
157 
158 - hset key field value    
159   - 将field-value设置到hash表中,若key不存在会新建hash表再赋值,已存在则会覆盖;
160   -     hset user name juhao        #user { name:juhao}
161 - hmset key field1 value1[field value...]   
162   - 同时设置多个
163   -     # user {name:juhao , age:18}
164         hmset user name juhao age 18 
165 
166 
167 
168 查看
169 
170 - hget key field      
171   - 获取value
172   -     hget user name
173 - hmget key field[field...]     
174   - 获取多个value
175   -     hmget user name age
176 - hvals key     
177   - 获取全部value
178 - hkeys key      
179   - 获取所有的field
180 
181 - hgetall key   
182   - 获取全部field 和 value      
183 - hlen key             
184   - 查看有几个键值对
185 
186 - hexists key field     
187   - 判断hash表中指定域是否存在,返回1,若key或field不存在则返回0;
188 
189 删除
190 
191 - hdel key field
192   -     hdel user name
193     
194 
195 
196 
197 
198 
199 set
200 
201     元素为string类型
202     无序集合
203     元素具有唯一性,不重复 
204     
205 
206 
207 
208 - sadd key member [member...]     增加元素
209   - 将一个或多个member元素加入到集合key中,若member已存在那么会忽略此元素,
210   - sadd my_set m n b v c x z b
211 - scard key    
212   - 返回集合key中元素的个数;
213 - smembers key      
214   - 获取集合中所有元素
215 
216 
217 
218 - sismember key member     判断集合存在某个值
219   - 判断member在key中是否已存在, 返回0或1 
220   - sismember my_set b
221 
222 
223 
224 - 删除
225   - srem key member [member...]     
226     - 移除一个或多个元素,不存在的member会被忽略,返回被移除元素个数
227     -     srem my_set a b n 
228   - spop key             随机删除
229     - 移除并返回集合中的一个随机元素,当key不存在时返回NULL
230       
231   
232 
233 - 交集
234       # sinter key1 key2 ..
235 236       sinter my_set my_set2
237   把 key1 key2的交集合并到newkey
238       # sinterstore newkey key1 key2
239 240       sinterstore  new_set my_set my_set2
241 - 并集
242       # sunion key1 key2 ...
243 244       sunion my_set my_set2
245       
246   把 key1 key2的并集合并到newkey
247       # sunionstore newkey key1 key2
248 249       sunionstore new_set2 my_set my_set2
250 - 差集
251       # sdiff key1 key2
252       sdiff my_set my_set2
253   把 key1 key2的差集合并到newkey
254       # sdiffstore newkey key1 key2
255 256       sdiffstore new_set3 my_set my_set2
257 
258 
259 
260 
261 
262 zset
263 
264     类似于Set,不同的是Sorted中的每个成员都分配了一个分数(Score)用于对其中的成员进行排序(升序)。
265     zset的成员是唯一的,但分数(score)却可以重复。
266 
267 添加/修改
268 
269 - zadd key score member[ [score member] ..]  
270   - 设置, 存在就更新
271   -     zadd  my_zset 1 one
272         zadd  my_zset 2 tow
273         
274         zadd  my_zset 10 one 20 two 30 three 40 four 50 five
275 
276 查看
277 
278 - zscore key member               
279   - 查看score值
280     zscore my_zset two
281   
282 - zrange key start stop[withscores]          
283   - 按索引返回key的成员, withscores表示显示score
284   -     zrange my_zset 0 -1   #显示全部
285 
286 - zrangebyscore key min max  
287   - 返回集合中 score 在给定区间的元素  
288   -     zrangebyscore zset 10 30
289   
290 
291 
292 
293 删除
294 
295 - zrem key member [member...]  
296   - 移除有序集合中的一个或多个元素,若member不存在则忽略;
297   -     zrem my_zset two 
298   
299 
300 - zremrangebyrank min max : 
301   - 删除集合中索引在给定区间的元素
302       zremrangebyrank my_zset 1 3
303 - zremrangebyscore  min max :
304   - 删除集合中 score 在给定区间的元素
305       zremrangebyscore my_zset 10 30
306 
307 
308 
309 
310 
311 
312 
313 
314 
315 redis配置
316 
317     vim /etc/redis/redis.conf    #配置文件地址
318     
319     port 6379                     # 默认端口    
320     logfile /var/log/redis.log      # 日志文件位置    
321     dbfilename dump.rdb         # RDB持久化数据文件名 ,  
322     dir /var/lib/redis            #指定本地数据库存放目录
323     bind 0.0.0.0                # 指定IP进行监听   
324     
325     requirepass  yourpassword    #密码
326         
327     save 900 1                #这三个是持久化,注释掉就关掉持久化
328     save 300 10
329     save 60 10000
330 
331 启动/停止/重启命令
332 
333     /etc/init.d/redis-server stop
334     /etc/init.d/redis-server start
335     /etc/init.d/redis-server restart
336     
337 
338 
339 
340 设置密码
341 
342     config get requirepass        //获取当前密码
343         #默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验证就可以连接到 redis 服务
344         
345     进入配置文件
346         vim /etc/redis/redis.conf  
347     找到requirepass 设置密码
348         vim 查找 /requirepass  按n查找下一个
349         requirepass  yourpassword  //此处注意,行前不能有空格
350     重启redis
351         redis-cli shutdown
352     
353     进入在添加    auth 123456
354     登陆的时候加上密码 redis-cli -a 123456
355     

 

以上是关于redis的主要内容,如果未能解决你的问题,请参考以下文章

redis存储session配制方法

Redis实现分布式锁(设计模式应用实战)

Redis实现分布式锁(设计模式应用实战)

Redis缓存:java语言注释符号,附超全教程文档

spring boot 整合 redis

Redis 学习 —— 数据类型及操作