Redis
Posted 李元芳芳芳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis相关的知识,希望对你有一定的参考价值。
1.Redis的基本使用
说明:Redis安装好后,默认有16个数据库,初始默认使用0号库,编号是0…15
1)添加key-val [set]
2)查看当前redis的所有key [keys *]
3)获取key对应的值 [get key]
4)如何查看当前数据库的key-val数量 [dasize]
5)切换redis数据库 [select index]
6)清空当前数据库的key-value和清空所有数据库的key-val [flushdb flushall]
2.Redis数据类型和CRUD
Redis的五大数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)和zset(sorted set:有序集合)
一、字符串
1)String(字符串)-介绍
string是redis最基本的类型,一个key对应一个value
str1 := “hello”
str2 := “张三”
string 类型是二进制安全的,除普通的字符串外,也可以存放图片等数据。
redis中字符串value最大是512M
2)String(字符串)-CRUD
set(如果存在相当于修改,不存在就是添加)/get/del
3)String(字符串)-使用细节和注意事项
setex(set with expire)键秒值
SETEX key seconds value
将值value关联到key,并将key的生存时间设为seconds(以秒为单位),如果key已经存在,SETEX命令将复写旧值。
4)mset [同时设置一个或者多个key-value 对]
MSET key value [key value …]
同时设置一个或者多个key-value对
如果某个给定key已经存在,那么 MSET 会用新值覆盖原来的旧值
5)mget [一次返回多个key的值]
MGET key [key…]
返回所有(一个或者多个)给定key的值
如果给定的key里面,有某个key不存在,那么这个可以返回特殊值nil。
二、Hash(哈希,类似golang里面的Map)
1)Redis hash是一个键值对集合,var user1 map[string]string
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
举例:存放一个User信息:
user1 name Smith age 30 job “golang coder”
说明:
key:user1
name张三和age 30 就是两对 field-value
单个写:hset user1 name smith
hset user1 age 30
hset user1 job “golang coder”
hget user1 name / / 获取
hgetall //获取所有
hdel
2)使用细节和注意事项
在给user设置name和age 时,前面我们是一步一步设置,使用hmset 和 hmget可以一次性来设置多个field的值和返回多个field的值
hlen 统计一个hash有几个元素
hexists key field
查看哈希表key中,给定域field是否存在
三、List(列表)
1)列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
List本质是个链表,List的元素是有序的,元素的值可以重复。
例子:存放多个地址信息
lpush city beijing shanghai tianjin
存储顺序(从左到右)天津 上海 北京
lrange city 0 1
2)List(列表)-CRUD
lpush/rpush/lrange/lpop/rpop/del/
lpop:将数据(左边)移出
rpop:将数据(右边)移出
LRANGE key start stop:返回列表key中指定区间内的元素,区间以偏移量start和stop指定。下标(index)参数start和stop都以0为底,也就是说,以0表示列表的第一个元素,以1表示列表的第二个元素,以此类推。你也可以使用负数下标,以-1表示列表的最后一个元素,-2表示列表的倒数第二个元素,以此类推。
四、Set(集合)-介绍
1)Redis的set是string类型的无序集合
底层是HashTable数据结构,Set也是存放很多字符串元素,字符串元素是无序的,而且元素的值不能重复。
sadd emails tom@sohu.com jack@qq.com
smembers emails ///从集合中取出所有的元素
2)sadd
smembers [取出所有值]
sismember [判断值是否是成员]
srem [删除指定值]
以上是关于Redis的主要内容,如果未能解决你的问题,请参考以下文章