一、redis 基础操作

1.1、string 类型及操作

string 是最简单的类型,一个key对应一个value,string类型是二进制安全的。redis的string可以包含任何数据。

1、set: 设置值
127.0.0.1:6379> set name haha
OK 2、setnx: 设置值,如果键已经存在则返回0,否则返回1
127.0.0.1:6379> setnx name haha
(integer) 0
127.0.0.1:6379> setnx info a
(integer) 1 3、get:获取键对应的值
127.0.0.1:6379> get name
"haha" 4、mset,mget:设置或者获取多个键值对
127.0.0.1:6379> MSET name haha age 18 sex nv
OK
127.0.0.1:6379> MGET name age sex
1) "haha"
2) "18"
3) "nv" 5、incrby:对 key 的值做加加(指定值)操作,并返回新的值
127.0.0.1:6379> INCRBY age 2
(integer) 22 6、incr:对 key 的值做加值,并返回新的值
127.0.0.1:6379> INCR age
(integer) 19 7、del:删除一个已创建的 key
127.0.0.1:6379> del name
(integer) 1
1.2、hash 类型及操作

Redis hash 是一个 string 类型的 field(字段)和 value 的映射表,hash 特别适合用于存储对象,相较于将对象的每个字段存成单个 string 类型,将一个对象存储在 hash 类型中会占用更少的内存,并且可以更方便的存取整个对象。

1、hset:设置 hash field 为指定值,如果 key 不存在,则先创建。
127.0.0.1:6379> HSET dic name huahua
(integer) 1 2、hget、hmset、hmget,与上面的string类似
127.0.0.1:6379> HMSET dic1 name ah age 18
OK 3、 hdel:删除制定表中的某一个键值对
127.0.0.1:6379> HDEL dic1 name
(integer) 1 4、hgetall:列出表中的所有键值对
127.0.0.1:6379> HGETALL dic1
1) "age"
2) "18"
1.3、list 类型及操作

list 是一个链表结构,主要功能是 push、pop、获取一个范围内的所有值等等,操作中 key 理解为链表的名字。Redis 的 list 类型其实就是一个每个子元素都是 string 类型的双向链表。我们可以通过 push、pop 操作从链表的头部或尾部添加删除元素。

1、lpush:在 key 对应 list 从左添加字符串元素
127.0.0.1:6379> LPUSH name haha ee nnn
(integer) 3 2、lrange:在 key 对应 list 从左遍历字符串元素,需指定起始和结束索引
127.0.0.1:6379> LRANGE name 0 -1
1) "nnn"
2) "ee"
3) "haha" 3、lpop:在 key 对应 list 从左删除一个元素
127.0.0.1:6379> LPOP name
"nnn" 4、rpop,rpush 类似,不过是从list右边插入与删除
1.4、Set 类型及操作

set 是集合,他是 string 类型的无序集合。Set 是通过 hash table 实现的,对集 、交集、差集。通过这些操作,集合不允许有重复值。

1、sadd:添加一个或多个元素到集合中
127.0.0.1:6379> sadd k1 1 2 3 4 5
(integer) 5 2、smembers:获取集合里面所有的元素
127.0.0.1:6379> SMEMBERS k1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5" 3、srem:从集合中删除指定的一个或多个元素
127.0.0.1:6379> SREM k1 2
(integer) 1 4、spop:随机从集合中删除一个元素,并返回
127.0.0.1:6379> SPOP k1
"3" 5、sdiff:返回集合 1 与集合 2 的差集
127.0.0.1:6379> SDIFF k1 k2
1) "1" 6、sinter:获得两个集合的交集
127.0.0.1:6379> SINTER k1 k2
1) "4"
2) "5" 7、sunion:获得两个集合的并集
127.0.0.1:6379> SUNION k1 k2
1) "1"
2) "3"
3) "4"
4) "5"
5) "6" 8、scard: 返回集合内元素个数
127.0.0.1:6379> SCARD k1
(integer) 5
1.5 zset 类型及操作

zset 是 set 的一个升级版本,它在 set 的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset 会自动重新按新的值调整顺序。可以理解为有两列的 mysql 表,一列存的 value,一列存的顺序。操作中 key 理解为 zset 的名字.

1、zadd:向一个指定的有序集合中添加元素,每一个元素会对应的有一个分数。你可以指定多个分数/成员组合。如果一个指定的成员已经在对应的有序集合中了,那么其分数就会被更新成最新的,并且该成员会重新调整到正确的位置,以确保集合有序。分数的值必须是一个表示数字的字符串。
127.0.0.1:6379> ZADD xx 1 zs 2 ls
(integer) 2 2、zrange:返回有序集合中,指定区间内的成员。其中成员按照 score(分数)值从小到大排序。
127.0.0.1:6379> ZRANGE xx 0 -1
1) "zs"
2) "ls" 3、zrem: 删除有序集合内元素
127.0.0.1:6379> ZREM xx zs
(integer) 1 4、zcard:返回有序集合元素的个数
127.0.0.1:6379> ZCARD xx
(integer) 1

二、其他命令

1、keys:按照键名查找指定的键。支持通配符(* ?等)
127.0.0.1:6379> keys *
1) "age"
2) "dics"
3) "dic"
4) "sex"
5) "xx"
2、 exists:确认一个键是否存在(1 表示存在)
127.0.0.1:6379> EXISTS age
(integer) 1
3、 del:删除一个键(通用)
127.0.0.1:6379> del age
(integer) 1
4、expire:设置一个键(已存在)的过期时间,如果键已经过期,将会被自动删除
127.0.0.1:6379> EXPIRE age 20
(integer) 0
5、ttl:以秒为单位,返回指定键的剩余有效时间

当 key 不存在时,返回 -2

当 key 存在但没有设置剩余生存时间时,返回 -1

否则,以秒为单位,返回 key 的剩余生存时间。

127.0.0.1:6379> TTL age
(integer) -2
127.0.0.1:6379> ttl k2
(integer) -1
6、select:选择一个数据库,默认连接的数据库是 0,可以支持共 16 个数据库。在配置文件中,通过 databases 16 关键字定义。
127.0.0.1:6379> SELECT 1
OK
127.0.0.1:6379[1]> keys *
1) "k1"
7、move:将当前数据库的键移动到指定的数据库中
127.0.0.1:6379> MOVE k1 1
(integer) 1
8、type:返回键的类型
127.0.0.1:6379[1]> TYPE k1
set
9、dbsize:返回当前库中键的数量
127.0.0.1:6379> DBSIZE
(integer) 10
10、save:保存所有的数据。很少在生产环境直接使用 SAVE 命令,因为它会阻塞所有的客户端的请求,可以使用 BGSAVE 命令代替. 如果在 BGSAVE 命令的保存数据的子进程发生错误的时,用 SAVE 命令保存最新的数据是最后的手段。
11、info:获取服务器的详细信息
12、config get:获取 redis 服务器配置文件中的参数。支持通配符
127.0.0.1:6379> CONFIG GET *
#获取所以配置参数
127.0.0.1:6379> CONFIG GET port
1) "port"
2) "6379"
13、flushdb:删除当前数据库中所有的数据
14.、flushall:删除所有数据库中的所有数据

最新文章

  1. SQLite剖析之事务处理技术
  2. 检索 COM 类工厂中 CLSID 解决办法
  3. BZOJ 4717 改装
  4. Program L 暴力求解
  5. QT枚举类型与字符串类型相互转换
  6. shell脚本学习(三)
  7. 1.在CentOS 6.4安装python3
  8. There are multiple modules with names that only differ in casing. 黄色warning
  9. Python直接改变实例化对象的列表属性的值 导致在flask中接口多次请求报错
  10. SPOJ.Visible Lattice Points(莫比乌斯反演)
  11. VTK计算网格模型上的最短路径
  12. flask连接mysql数据库
  13. SQL优化技巧-批处理替代游标
  14. SSIS教程:创建简单的ETL包 -- 3. 添加日志(Adding Logging)
  15. angular中的cookies与cookieStore区别
  16. mysql 使用 informatin_schema tables 创建 shell commands
  17. JavaScript中实现DI的原理(二)
  18. Js日常笔记之this
  19. openvswitch总述
  20. Keepalived 配置高可用

热门文章

  1. Python--day46--mysql触发器
  2. js基础——function类型
  3. ActiveMQ--配置端口
  4. 2018-2-13-win10-UWP-ListView-模仿开始菜单
  5. HDU 3974 Assign the task
  6. 洛谷4139 bzoj 3884 上帝与集合的正确用法
  7. 使用git命令修改commit提交信息
  8. op挂载摄像头
  9. CString::CompareNoCase与CString::Compare的区别
  10. 通过Servlet生成验证码图片(转)